]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgp_l3vpn_to_bgp_direct: 2nd try at skipping tests when MPLS not available
authorLou Berger <lberger@labn.net>
Thu, 1 Feb 2018 14:17:33 +0000 (09:17 -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_direct/customize.py

index ace8f80256ed4b36167cac2f7eecfbb1658490d6..33c6bf80c870c12b8078589cca191bdbf1190f42 100644 (file)
@@ -74,6 +74,7 @@ r3-eth1 .3 |  | .3  r3-eth0      | .4 r4-eth0
 """
 
 import os
+import re
 import sys
 import pytest
 
@@ -91,6 +92,8 @@ CWD = os.path.dirname(os.path.realpath(__file__))
 # test name based on directory
 TEST = os.path.basename(CWD)
 
+MplsInit = False
+
 class ThisTestTopo(Topo):
     "Test topology builder"
     def build(self, *_args, **_opts):
@@ -101,7 +104,14 @@ class ThisTestTopo(Topo):
         # between routers, switches and hosts.
         #
         # Create P/PE routers
-        for routern in range(1, 5):
+        tgen.add_router('r1')
+        #check for mpls - there may be a better way to check...
+        if os.path.exists('/proc/sys/net/mpls/conf') != True:
+            logger.info('MPLS not available, tests will be skipped')
+            return
+        global MplsInit
+        MplsInit = True
+        for routern in range(2, 5):
             tgen.add_router('r{}'.format(routern))
         # Create CE routers
         for routern in range(1, 4):
@@ -128,20 +138,20 @@ class ThisTestTopo(Topo):
         switch[1].add_link(tgen.gears['r2'], nodeif='r2-eth2')
         switch[1].add_link(tgen.gears['r3'], nodeif='r3-eth1')
 
-def doCmd(tgen, rtr, cmd, checkstr=None):
+def doCmd(tgen, rtr, cmd, checkstr = None):
     output = tgen.net[rtr].cmd(cmd).strip()
     if len(output):
-        logger.info('command output: ' + output)
         if checkstr != None:
             return re.search(checkstr, output)
+        logger.info('command output: ' + output)
     return None
 
 def ltemplatePreRouterStartHook():
     tgen = get_topogen()
     logger.info('pre router-start hook')
-    #check for mpls - there may be a better way to check...
-    if doCmd(tgen, 'r2', 'ls /proc/sys/net/mpls/conf', 'No such'):
-        logger.info('MPLS not supported, tests will be skipped')
+    #check for mpls
+    if MplsInit == False:
+        logger.info('MPLS not available, skipping setup')
         return
     #configure r2 mpls interfaces
     intfs = ['lo', 'r2-eth0', 'r2-eth1', 'r2-eth2']
@@ -169,8 +179,8 @@ def versionCheck(vstr, rname='r1', compstr='<',cli=False):
 
     router = tgen.gears[rname]
 
-    if router.has_mpls() == False:
-        ret = 'MPLS not supported'
+    if MplsInit == False:
+        ret = 'MPLS not initialized'
         return ret
 
     ret = True