summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLou Berger <lberger@labn.net>2018-07-11 11:17:48 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2018-11-27 20:22:14 -0500
commitffd3f544938eefd13c84ac4743c3afe1442d0aa7 (patch)
tree004dc4f8c17b9cf54a5e621f25d8a54aed3590bd
parentdce382d4a92dee4368aa8f9a51688948953ec94e (diff)
lib: more logging to aid in failure debugging
Signed-off-by: Lou Berger <lberger@labn.net>
-rw-r--r--tests/topotests/lib/bgprib.py25
-rwxr-xr-xtests/topotests/lib/lutil.py10
2 files changed, 20 insertions, 15 deletions
diff --git a/tests/topotests/lib/bgprib.py b/tests/topotests/lib/bgprib.py
index 0a00b5e5a6..8ec1511e10 100644
--- a/tests/topotests/lib/bgprib.py
+++ b/tests/topotests/lib/bgprib.py
@@ -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()
diff --git a/tests/topotests/lib/lutil.py b/tests/topotests/lib/lutil.py
index 9be6505eeb..3ae18018bf 100755
--- a/tests/topotests/lib/lutil.py
+++ b/tests/topotests/lib/lutil.py
@@ -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