Right now it logs diff between expected and observed only when enough
packets arrived. If less than expected packets arrived, only the
number of packets observed was logged, but not the packets themselves.
This patch makes the functions log the expected packets, the observed
packets, as well as the diff between them in this situation.

Signed-off-by: Ihar Hrachyshka <ihrac...@redhat.com>
---
 tests/ovn.at | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/tests/ovn.at b/tests/ovn.at
index 957eb7850..5d587dde2 100644
--- a/tests/ovn.at
+++ b/tests/ovn.at
@@ -10,7 +10,19 @@
 # testsuite file since the shell function is only emitted once even
 # when this macro is invoked many times.
 m4_divert_text([PREPARE_TESTS],
-  [ovn_check_packets__ () {
+  [dump_diff__ () {
+     local rcv_pcap=$1 exp_text=$2
+     rcv_text=`echo "$rcv_pcap.packets" | sed 's/\.pcap//'`
+     echo "Expected:"
+     sort $exp_text
+     echo "Received:"
+     sort $rcv_text
+     sort $exp_text -o $exp_text.sorted
+     sort $rcv_text -o $rcv_text.sorted
+     echo "Diff:"
+     diff -u $exp_text.sorted $rcv_text.sorted
+   }
+   ovn_check_packets__ () {
      echo
      echo "$3: checking packets in $1 against $2:"
      rcv_pcap=$1
@@ -21,7 +33,8 @@ m4_divert_text([PREPARE_TESTS],
        [$PYTHON "$ovs_srcdir/utilities/ovs-pcap.in" $rcv_pcap > $rcv_text
         rcv_n=`wc -l < "$rcv_text"`
         echo "rcv_n=$rcv_n exp_n=$exp_n"
-        test $rcv_n -ge $exp_n])
+        test $rcv_n -ge $exp_n],
+       [dump_diff__ "$rcv_pcap" "$exp_text"])
      sort $exp_text > expout
    }
    ovn_check_packets_remove_broadcast__ () {
@@ -35,18 +48,19 @@ m4_divert_text([PREPARE_TESTS],
         sed -i '/ffffffffffff/d' $rcv_text
         rcv_n=`wc -l < "$rcv_text"`
         echo "rcv_n=$rcv_n exp_n=$exp_n"
-        test $rcv_n -ge $exp_n])
+        test $rcv_n -ge $exp_n],
+       [dump_diff__ "$rcv_pcap" "$exp_text"])
      sort $exp_text > expout
    }
 ])
 
 m4_define([OVN_CHECK_PACKETS],
   [ovn_check_packets__ "$1" "$2" "__file__:__line__"
-   AT_CHECK([sort $rcv_text], [0], [expout])])
+   AT_CHECK([sort $rcv_text], [0], [expout], [ignore], [dump_diff__ "$1" 
"$2"])])
 
 m4_define([OVN_CHECK_PACKETS_REMOVE_BROADCAST],
   [ovn_check_packets_remove_broadcast__ "$1" "$2" "__file__:__line__"
-   AT_CHECK([sort $rcv_text], [0], [expout])])
+   AT_CHECK([sort $rcv_text], [0], [expout], [ignore], [dump_diff__ "$1" 
"$2"])])
 
 m4_define([OVN_CHECK_PACKETS_CONTAIN],
   [ovn_check_packets__ "$1" "$2" "__file__:__line__"
-- 
2.34.1

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to