]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: more logging to aid in failure debugging
authorLou Berger <lberger@labn.net>
Wed, 11 Jul 2018 15:17:48 +0000 (11:17 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:14 +0000 (20:22 -0500)
Signed-off-by: Lou Berger <lberger@labn.net>
tests/topotests/lib/bgprib.py
tests/topotests/lib/lutil.py

index 0a00b5e5a65d2189e5ec6c7ca68cc898ca125e29..8ec1511e1031d43193f6aae456f4fa5847c14fbc 100644 (file)
@@ -71,15 +71,16 @@ class BgpRib:
 
     def RequireVpnRoutes(self, target, title, wantroutes, debug=0):
        import json
+        logstr = "RequireVpnRoutes " + str(wantroutes)
         #non json form for humans
        luCommand(target,'vtysh -c "show bgp ipv4 vpn"','.','None','Get VPN RIB (non-json)')
        ret = luCommand(target,'vtysh -c "show bgp ipv4 vpn json"','.*','None','Get VPN RIB (json)')
         if re.search(r'^\s*$', ret):
             # degenerate case: empty json means no routes
             if len(wantroutes) > 0:
-                luResult(target, False, title)
+                luResult(target, False, title, logstr)
                 return
-            luResult(target, True, title)
+            luResult(target, True, title, logstr)
        rib = json.loads(ret)
        rds = rib['routes']['routeDistinguishers']
        for want in wantroutes:
@@ -96,12 +97,12 @@ class BgpRib:
                    found = 1
                    break
            if not found:
-               luResult(target, False, title)
+               luResult(target, False, title, logstr)
                return
-       luResult(target, True, title)
+       luResult(target, True, title, logstr)
 
     def RequireUnicastRoutes(self,target,afi,vrf,title,wantroutes,debug=0):
-
+        logstr = "RequireVpnRoutes " + str(wantroutes)
        vrfstr = ''
        if vrf != '':
            vrfstr = 'vrf %s' % (vrf)
@@ -109,25 +110,25 @@ class BgpRib:
        if (afi != 'ipv4') and (afi != 'ipv6'):
            print "ERROR invalid afi";
 
-       str = 'show bgp %s %s unicast' % (vrfstr, afi)
+       cmdstr = 'show bgp %s %s unicast' % (vrfstr, afi)
         #non json form for humans
-       cmd = 'vtysh -c "%s"' % str
+       cmd = 'vtysh -c "%s"' % cmdstr
        luCommand(target,cmd,'.','None','Get %s %s RIB (non-json)' % (vrfstr, afi))
-        cmd = 'vtysh -c "%s json"' % str
+        cmd = 'vtysh -c "%s json"' % cmdstr
        ret = luCommand(target,cmd,'.*','None','Get %s %s RIB (json)' % (vrfstr, afi))
         if re.search(r'^\s*$', ret):
             # degenerate case: empty json means no routes
             if len(wantroutes) > 0:
-                luResult(target, False, title)
+                luResult(target, False, title, logstr)
                 return
-            luResult(target, True, title)
+            luResult(target, True, title, logstr)
        rib = json.loads(ret)
        table = rib['routes']
        for want in wantroutes:
            if not self.routes_include_wanted(table,want,debug):
-               luResult(target, False, title)
+               luResult(target, False, title, logstr)
                return
-       luResult(target, True, title)
+       luResult(target, True, title, logstr)
 
 
 BgpRib=BgpRib()
index 9be6505eeb22dde882e7b3d0d6d2759947d1958d..3ae18018bfdd84a10ff54ce82334ddc367458306 100755 (executable)
@@ -72,16 +72,20 @@ Test Target Summary                                                  Pass Fail\n
 ******************************************************************************\n')
         self.fsum.write(str+'\n')
 
-    def result(self, target, success, str):
+    def result(self, target, success, str, logstr=None):
         if success:
             p = 1
             f = 0
             self.l_pass += 1
+            sstr = "PASS"
         else:
             f = 1
             p = 0
             self.l_fail += 1
+            sstr = "FAIL"
         self.l_total += 1
+        if logstr != None:
+            self.log("R:%d %s: %s" % (self.l_total, sstr, logstr))
         res = "%-4d %-6s %-56s %-4d %d" % (self.l_total, target, str, p, f)
         self.log ('R:'+res)
         self.summary(res)
@@ -320,8 +324,8 @@ def luNumFail():
 def luNumPass():
     return LUtil.l_pass
 
-def luResult(target, success, str):
-    return LUtil.result(target, success, str)
+def luResult(target, success, str, logstr=None):
+    return LUtil.result(target, success, str, logstr)
 
 def luShowFail():
     printed = 0