]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgp_l3vpn_to_bgp_vrf: centralize iproute2 check, add checks to appropriate tests
authorLou Berger <lberger@labn.net>
Sun, 11 Feb 2018 18:06:39 +0000 (13:06 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 28 Nov 2018 01:22:13 +0000 (20:22 -0500)
Signed-off-by: Lou Berger <lberger@labn.net>
tests/topotests/bgp_l3vpn_to_bgp_vrf/customize.py
tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/check_linux_mpls.py
tests/topotests/bgp_l3vpn_to_bgp_vrf/test_bgp_l3vpn_to_bgp_vrf.py

index 6fb42fad9de11bae5cc7cd939b955a274311434f..99bc6e1732920361c97ec2b696b4cc9ddd04d51f 100644 (file)
@@ -94,6 +94,7 @@ CWD = os.path.dirname(os.path.realpath(__file__))
 TEST = os.path.basename(CWD)
 
 InitSuccess = False
+iproute2Ver = None
 
 class ThisTestTopo(Topo):
     "Test topology builder"
@@ -196,10 +197,12 @@ def ltemplatePreRouterStartHook():
         logger.info('Topology not configured, skipping setup')
         return
     #collect/log info on iproute2
-    cc.doCmd(tgen, 'r2', 'apt-cache policy iproute2')
-    cc.doCmd(tgen, 'r2', 'yum info iproute2')
-    cc.doCmd(tgen, 'r2', 'yum info iproute')
-
+    found = cc.doCmd(tgen, 'r2', 'apt-cache policy iproute2', 'Installed: ([\d\.]*)')
+    if found != None:
+        global iproute2Ver
+        iproute2Ver = found.group(1)
+        logger.info('Have iproute2 version=' + iproute2Ver)
+    #trace errors/unexpected output
     cc.resetCounts()
     #configure r2 mpls interfaces
     intfs = ['lo', 'r2-eth0', 'r2-eth1', 'r2-eth2']
@@ -248,36 +251,40 @@ def ltemplatePostRouterStartHook():
     logger.info('post router-start hook')
     return;
 
-def versionCheck(vstr, rname='r1', compstr='<',cli=False, kernel='4.9'):
+def versionCheck(vstr, rname='r1', compstr='<',cli=False, kernel='4.9', iproute2=None):
     tgen = get_topogen()
-
     router = tgen.gears[rname]
 
+    if cli:
+        logger.info('calling mininet CLI')
+        tgen.mininet_cli()
+        logger.info('exited mininet CLI')
+
+    if InitSuccess != True:
+        ret = 'Test not initialized'
+        return ret
+
     if tgen.hasmpls != True:
         ret = 'MPLS not initialized'
         return ret
 
-    if InitSuccess != True:
-        ret = 'Test not successfully initialized'
-        return ret
+    if kernel != None:
+        krel = platform.release()
+        if topotest.version_cmp(krel, kernel) < 0:
+            ret = 'Skipping tests, old kernel ({} < {})'.format(krel, kernel)
+            return ret
+
+    if iproute2 != None:
+        if iproute2Ver == None or topotest.version_cmp(iproute2Ver, iproute2) < 0:
+            ret = 'Skipping tests, old iproute2 ({} < {})'.format(iproute2Ver, iproute2)
+            return ret
 
     ret = True
     try:
         if router.has_version(compstr, vstr):
-            ret = False
-            logger.debug('version check failed, version {} {}'.format(compstr, vstr))
+            ret = 'Skipping tests, old FRR version {} {}'.format(compstr, vstr)
+            return ret
     except:
         ret = True
-    if ret == False:
-        ret = 'Skipping tests on old version ({}{})'.format(compstr, vstr)
-        logger.info(ret)
-    elif kernel != None:
-        krel = platform.release()
-        if topotest.version_cmp(krel, kernel) < 0:
-            ret = 'Skipping tests on old version ({} < {})'.format(krel, kernel)
-            logger.info(ret)
-    if cli:
-        logger.info('calling mininet CLI')
-        tgen.mininet_cli()
-        logger.info('exited mininet CLI')
+
     return ret
index 2ccc94599276b023d774e81a3ac93966c5a55891..e2b159a8580f4d91a7cee2e1b8568c5ea77937c2 100644 (file)
@@ -1,19 +1,7 @@
 from lutil import luCommand, luLast
 from lib import topotest
-from lib.topolog import logger
-minver = '4.9'
-ret = luCommand('r1','apt-cache policy iproute2', 'Installed: ([\d\.]*)')
+ret = luCommand('r2','ip -M route show','\d*(?= via inet 10.0.2.4 dev r2-eth1)','wait','See mpls route to r4')
 found = luLast()
-dotest = -1
-if ret != False and found != None:
-    dotest = topotest.version_cmp(found.group(1), minver)
-if dotest == -1:
-    luCommand('r1','apt-cache policy iproute2', '.', 'pass', 'Skipping test, iproute2 version {} < {}'.format(found.group(1), minver))
-    ret = False
-else:
-    logger.info('iproute2 ver = {} dotest = {}'.format(found.group(1), dotest))
-    ret = luCommand('r2','ip -M route show','\d*(?= via inet 10.0.2.4 dev r2-eth1)','wait','See mpls route to r4')
-    found = luLast()
 if ret != False and found != None:
     label4r4 = found.group(0)
     luCommand('r2','ip -M route show','.','pass','See %s as label to r4' % label4r4)
index 0b7c106973ecf6d893f9be4fb67665b9af0b9651..57313acb8acd60142fb0ac31018a0d8d7dbc72c1 100755 (executable)
@@ -33,9 +33,9 @@ def test_check_linux_vrf():
     CliOnFail = None
     # For debugging, uncomment the next line
     #CliOnFail = 'tgen.mininet_cli'
-    CheckFunc = 'customize.versionCheck(\'3.1\')'
+    CheckFunc = 'customize.versionCheck(\'3.1\', iproute2=\'4.9\')'
     #uncomment next line to start cli *before* script is run
-    #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True)'
+    #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True, iproute2=\'4.9\')'
     ltemplateTest('scripts/check_linux_vrf.py', False, CliOnFail, CheckFunc)
 
 def test_adjacencies():
@@ -70,9 +70,9 @@ def test_check_linux_mpls():
     CliOnFail = None
     # For debugging, uncomment the next line
     #CliOnFail = 'tgen.mininet_cli'
-    CheckFunc = 'customize.versionCheck(\'3.1\')'
+    CheckFunc = 'customize.versionCheck(\'3.1\', iproute2=\'4.9\')'
     #uncomment next line to start cli *before* script is run
-    #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True)'
+    #CheckFunc = 'customize.versionCheck(\'3.1\', cli=True, iproute2=\'4.9\')'
     ltemplateTest('scripts/check_linux_mpls.py', False, CliOnFail, CheckFunc)
 
 def SKIP_test_cleanup_all():