From: Lou Berger Date: Sun, 11 Feb 2018 18:06:39 +0000 (-0500) Subject: bgp_l3vpn_to_bgp_vrf: centralize iproute2 check, add checks to appropriate tests X-Git-Tag: frr-7.1-dev~151^2~126 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=1e21dc870d676d1c93482800ef09b32741559815;p=mirror%2Ffrr.git bgp_l3vpn_to_bgp_vrf: centralize iproute2 check, add checks to appropriate tests Signed-off-by: Lou Berger --- diff --git a/tests/topotests/bgp_l3vpn_to_bgp_vrf/customize.py b/tests/topotests/bgp_l3vpn_to_bgp_vrf/customize.py index 6fb42fad9d..99bc6e1732 100644 --- a/tests/topotests/bgp_l3vpn_to_bgp_vrf/customize.py +++ b/tests/topotests/bgp_l3vpn_to_bgp_vrf/customize.py @@ -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 diff --git a/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/check_linux_mpls.py b/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/check_linux_mpls.py index 2ccc945992..e2b159a858 100644 --- a/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/check_linux_mpls.py +++ b/tests/topotests/bgp_l3vpn_to_bgp_vrf/scripts/check_linux_mpls.py @@ -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) diff --git a/tests/topotests/bgp_l3vpn_to_bgp_vrf/test_bgp_l3vpn_to_bgp_vrf.py b/tests/topotests/bgp_l3vpn_to_bgp_vrf/test_bgp_l3vpn_to_bgp_vrf.py index 0b7c106973..57313acb8a 100755 --- a/tests/topotests/bgp_l3vpn_to_bgp_vrf/test_bgp_l3vpn_to_bgp_vrf.py +++ b/tests/topotests/bgp_l3vpn_to_bgp_vrf/test_bgp_l3vpn_to_bgp_vrf.py @@ -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():