]> git.puffer.fish Git - mirror/frr.git/commitdiff
tests: Moving kernel version check to API.
authornaveen <nguggarigoud@vmware.com>
Tue, 18 Aug 2020 14:22:45 +0000 (19:52 +0530)
committernguggarigoud <nguggarigoud@vmware.com>
Tue, 15 Sep 2020 10:14:10 +0000 (15:44 +0530)
Signed-off-by: naveen <nguggarigoud@vmware.com>
12 files changed:
tests/topotests/bgp-basic-functionality-topo1/test_bgp_basic_functionality.py
tests/topotests/bgp-ecmp-topo2/test_ebgp_ecmp_topo2.py
tests/topotests/bgp-ecmp-topo2/test_ibgp_ecmp_topo2.py
tests/topotests/bgp_as_allow_in/test_bgp_as_allow_in.py
tests/topotests/bgp_communities_topo1/test_bgp_communities.py
tests/topotests/bgp_gr_functionality_topo1/test_bgp_gr_functionality_topo1.py
tests/topotests/bgp_gr_functionality_topo2/test_bgp_gr_functionality_topo2.py
tests/topotests/bgp_large_community/test_bgp_large_community_topo_1.py
tests/topotests/bgp_large_community/test_bgp_large_community_topo_2.py
tests/topotests/bgp_multi_vrf_topo1/test_bgp_multi_vrf_topo1.py
tests/topotests/bgp_multi_vrf_topo2/test_bgp_multi_vrf_topo2.py
tests/topotests/lib/common_config.py

index 7e7155e8fad05af87cda659837a66ef8680d925c..b34c001ca26ca1496cc2d34bd39e6f66016349d7 100755 (executable)
@@ -46,9 +46,8 @@ import sys
 import json
 import time
 import pytest
-import platform
 from copy import deepcopy
-from lib.topotest import version_cmp
+
 # Save the Current Working Directory to find configuration files.
 CWD = os.path.dirname(os.path.realpath(__file__))
 sys.path.append(os.path.join(CWD, "../"))
@@ -70,6 +69,7 @@ from lib.common_config import (
     create_static_routes,
     verify_rib,
     verify_admin_distance_for_static_routes,
+<<<<<<< ff9ae8fbb8f14b1cf5679d3278341edd09e7d8bf
     check_address_types,
     apply_raw_config,
     addKernelRoute,
@@ -77,6 +77,9 @@ from lib.common_config import (
     create_prefix_lists,
     create_route_maps,
     verify_bgp_community,
+=======
+    required_linux_kernel_version
+>>>>>>> tests: Moving kernel version check to API.
 )
 from lib.topolog import logger
 from lib.bgp import (
@@ -138,6 +141,11 @@ def setup_module(mod):
     * `mod`: module name
     """
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
     logger.info("=" * 40)
index 6059060729e5759aaba4048923d39afab08fce25..63e5a9f9b283bbdf9f35aa2ab6aaa7df9a5db110 100755 (executable)
@@ -41,7 +41,7 @@ import sys
 import time
 import json
 import pytest
-import platform
+
 # Save the Current Working Directory to find configuration files.
 CWD = os.path.dirname(os.path.realpath(__file__))
 sys.path.append(os.path.join(CWD, "../"))
@@ -51,7 +51,7 @@ sys.path.append(os.path.join(CWD, "../../"))
 # Import topogen and topotest helpers
 from lib.topogen import Topogen, get_topogen
 from mininet.topo import Topo
-from lib.topotest import version_cmp
+
 from lib.common_config import (
     start_topology,
     write_test_header,
@@ -61,6 +61,7 @@ from lib.common_config import (
     check_address_types,
     interface_status,
     reset_config_on_routers,
+    required_linux_kernel_version
 )
 from lib.topolog import logger
 from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp
@@ -108,6 +109,11 @@ def setup_module(mod):
     global NEXT_HOPS, INTF_LIST_R3, INTF_LIST_R2, TEST_STATIC
     global ADDR_TYPES
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
     logger.info("=" * 40)
@@ -124,11 +130,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Don't run this test if we have any failure.
     if tgen.routers_have_failure():
         pytest.skip(tgen.errors)
index 81486dd2a19859ea6c33f5c7ea535cacb5cc01f3..883dc92438f02f2b8705e683e5f4aaeb7c0102d7 100755 (executable)
@@ -41,7 +41,7 @@ import sys
 import time
 import json
 import pytest
-import platform
+
 # Save the Current Working Directory to find configuration files.
 CWD = os.path.dirname(os.path.realpath(__file__))
 sys.path.append(os.path.join(CWD, "../"))
@@ -51,7 +51,7 @@ sys.path.append(os.path.join(CWD, "../../"))
 # Import topogen and topotest helpers
 from lib.topogen import Topogen, get_topogen
 from mininet.topo import Topo
-from lib.topotest import version_cmp
+
 from lib.common_config import (
     start_topology,
     write_test_header,
@@ -61,6 +61,7 @@ from lib.common_config import (
     check_address_types,
     interface_status,
     reset_config_on_routers,
+    required_linux_kernel_version
 )
 from lib.topolog import logger
 from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp
@@ -108,6 +109,11 @@ def setup_module(mod):
     global NEXT_HOPS, INTF_LIST_R3, INTF_LIST_R2, TEST_STATIC
     global ADDR_TYPES
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
     logger.info("=" * 40)
@@ -124,11 +130,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Don't run this test if we have any failure.
     if tgen.routers_have_failure():
         pytest.skip(tgen.errors)
index 197a2619aa62a6f1c484ca3a3631ee3ee2541f1e..4db4d1a8b9f806069f47b4f991efbb017ea149e9 100755 (executable)
@@ -43,7 +43,7 @@ import sys
 import time
 import json
 import pytest
-import platform
+
 # Save the Current Working Directory to find configuration files.
 CWD = os.path.dirname(os.path.realpath(__file__))
 sys.path.append(os.path.join(CWD, "../"))
@@ -53,7 +53,7 @@ sys.path.append(os.path.join(CWD, "../lib/"))
 # Import topogen and topotest helpers
 from mininet.topo import Topo
 from lib.topogen import Topogen, get_topogen
-from lib.topotest import version_cmp
+
 # Import topoJson from lib, to create topology and initial configuration
 from lib.common_config import (
     start_topology,
@@ -65,6 +65,7 @@ from lib.common_config import (
     create_route_maps,
     check_address_types,
     step,
+    required_linux_kernel_version
 )
 from lib.topolog import logger
 from lib.bgp import (
@@ -112,6 +113,11 @@ def setup_module(mod):
     * `mod`: module name
     """
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
     logger.info("=" * 40)
@@ -129,11 +135,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Checking BGP convergence
     global BGP_CONVERGENCE
     global ADDR_TYPES
index 2726f65ad9e3958a0572a24de3fef5ffd7e384b8..88c5e0df199d8c8d7b3e4e5f264f21a0d96d9363 100644 (file)
@@ -31,7 +31,6 @@ import sys
 import time
 import json
 import pytest
-import platform
 
 # Save the Current Working Directory to find configuration files.
 CWD = os.path.dirname(os.path.realpath(__file__))
@@ -41,7 +40,7 @@ sys.path.append(os.path.join(CWD, "../"))
 # Import topogen and topotest helpers
 from mininet.topo import Topo
 from lib.topogen import Topogen, get_topogen
-from lib.topotest import version_cmp
+
 # Import topoJson from lib, to create topology and initial configuration
 from lib.common_config import (
     start_topology,
@@ -55,6 +54,7 @@ from lib.common_config import (
     create_route_maps,
     create_prefix_lists,
     create_route_maps,
+    required_linux_kernel_version
 )
 from lib.topolog import logger
 from lib.bgp import (
@@ -103,6 +103,11 @@ def setup_module(mod):
     * `mod`: module name
     """
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
     logger.info("=" * 40)
@@ -120,11 +125,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Checking BGP convergence
     global BGP_CONVERGENCE
     global ADDR_TYPES
index fc6c528f7160006c9e809fc59a1581a2a8a34363..30757809c4628bdb90eb3de40d2001d90a9c2c93 100755 (executable)
@@ -91,7 +91,6 @@ import json
 import time
 import inspect
 import pytest
-import platform
 from time import sleep
 
 # Save the Current Working Directory to find configuration files.
@@ -104,7 +103,7 @@ sys.path.append(os.path.join("../lib/"))
 from lib import topotest
 from lib.topogen import Topogen, TopoRouter, get_topogen
 from lib.topolog import logger
-from lib.topotest import version_cmp
+
 # Required to instantiate the topology builder class.
 from mininet.topo import Topo
 
@@ -136,6 +135,7 @@ from lib.common_config import (
     kill_mininet_routers_process,
     get_frr_ipv6_linklocal,
     create_route_maps,
+    required_linux_kernel_version
 )
 
 # Reading the data from JSON File for topology and configuration creation
@@ -187,6 +187,11 @@ def setup_module(mod):
 
     global ADDR_TYPES
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
     logger.info("=" * 40)
@@ -207,11 +212,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Don't run this test if we have any failure.
     if tgen.routers_have_failure():
         pytest.skip(tgen.errors)
index 49045f2bb6964bbd0c07099c4486d03c49784b1c..8bec22c57747206f249adaf0c56ad450049af7b7 100755 (executable)
@@ -87,7 +87,6 @@ import sys
 import json
 import time
 import pytest
-import platform
 from time import sleep
 from copy import deepcopy
 
@@ -101,7 +100,7 @@ sys.path.append(os.path.join("../lib/"))
 from lib import topotest
 from lib.topogen import Topogen, TopoRouter, get_topogen
 from lib.topolog import logger
-from lib.topotest import version_cmp
+
 # Required to instantiate the topology builder class.
 from mininet.topo import Topo
 
@@ -136,6 +135,7 @@ from lib.common_config import (
     kill_mininet_routers_process,
     get_frr_ipv6_linklocal,
     create_route_maps,
+    required_linux_kernel_version
 )
 
 # Reading the data from JSON File for topology and configuration creation
@@ -184,6 +184,11 @@ def setup_module(mod):
     * `mod`: module name
     """
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     global ADDR_TYPES
 
     testsuite_run_time = time.asctime(time.localtime(time.time()))
@@ -203,11 +208,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Api call verify whether BGP is converged
     ADDR_TYPES = check_address_types()
 
index baa0653dc2203dfef968f48013d50737b8156ffe..fe9e8504adadaa12a2ebb20b05288e9a6bbb17dd 100755 (executable)
@@ -51,8 +51,7 @@ import time
 from os import path as os_path
 import sys
 from json import load as json_load
-import platform
-from lib.topotest import version_cmp
+
 # Required to instantiate the topology builder class.
 from lib.topogen import Topogen, get_topogen
 from mininet.topo import Topo
@@ -68,6 +67,7 @@ from lib.common_config import (
     verify_bgp_community,
     step,
     check_address_types,
+    required_linux_kernel_version
 )
 from lib.topolog import logger
 from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp_and_verify
@@ -143,6 +143,11 @@ def setup_module(mod):
 
     * `mod`: module name
     """
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     global ADDR_TYPES
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
@@ -161,11 +166,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Checking BGP convergence
     global bgp_convergence
 
index 5ec663c633e216014bdbcfc976f1c140529c0f69..d890fe127d37a51f80da445140137e52be430316 100755 (executable)
@@ -64,7 +64,7 @@ import sys
 import json
 import pytest
 import time
-import platform
+
 # Save the Current Working Directory to find configuration files.
 CWD = os.path.dirname(os.path.realpath(__file__))
 sys.path.append(os.path.join(CWD, "../"))
@@ -75,7 +75,7 @@ sys.path.append(os.path.join(CWD, "../lib/"))
 # Import topoJson from lib, to create topology and initial configuration
 from lib.topogen import Topogen, get_topogen
 from mininet.topo import Topo
-from lib.topotest import version_cmp
+
 from lib.common_config import (
     start_topology,
     write_test_header,
@@ -91,6 +91,7 @@ from lib.common_config import (
     verify_route_maps,
     create_static_routes,
     check_address_types,
+    required_linux_kernel_version
 )
 from lib.topolog import logger
 from lib.bgp import verify_bgp_convergence, create_router_bgp, clear_bgp_and_verify
@@ -133,6 +134,11 @@ def setup_module(mod):
     * `mod`: module name
     """
 
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.15')
+    if result:
+        pytest.skip(result)
+
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
     logger.info("=" * 40)
@@ -150,11 +156,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     # Checking BGP convergence
     global bgp_convergence, ADDR_TYPES
 
index 74cbda6a259d5673394ba17aeb2194f0c55eeb01..6ecc11119fbf24aad3970a0e84da163f81ae6e02 100755 (executable)
@@ -102,7 +102,6 @@ import sys
 import json
 import time
 import pytest
-import platform
 from copy import deepcopy
 
 # Save the Current Working Directory to find configuration files.
@@ -116,7 +115,7 @@ sys.path.append(os.path.join(CWD, "../lib/"))
 # Import topogen and topotest helpers
 from lib.topogen import Topogen, get_topogen
 from mininet.topo import Topo
-from lib.topotest import version_cmp
+
 from lib.common_config import (
     step,
     verify_rib,
@@ -133,6 +132,7 @@ from lib.common_config import (
     create_bgp_community_lists,
     check_router_status,
     apply_raw_config,
+    required_linux_kernel_version
 )
 
 from lib.topolog import logger
@@ -210,6 +210,10 @@ def setup_module(mod):
 
     * `mod`: module name
     """
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.19')
+    if result:
+        pytest.skip(result)
 
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
@@ -231,11 +235,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     global BGP_CONVERGENCE
     global ADDR_TYPES
     ADDR_TYPES = check_address_types()
index f1522c2a99e40b419b259dac21993bd1fab573e1..18c4a5dc757f506ce42c44f5ebdf382ebde16d83 100755 (executable)
@@ -43,10 +43,9 @@ import sys
 import json
 import time
 import pytest
-import platform
 from copy import deepcopy
 from time import sleep
-from lib.topotest import version_cmp
+
 
 # Save the Current Working Directory to find configuration files.
 CWD = os.path.dirname(os.path.realpath(__file__))
@@ -79,6 +78,7 @@ from lib.common_config import (
     get_frr_ipv6_linklocal,
     check_router_status,
     apply_raw_config,
+    required_linux_kernel_version
 )
 
 from lib.topolog import logger
@@ -142,6 +142,10 @@ def setup_module(mod):
 
     * `mod`: module name
     """
+    # Required linux kernel version for this suite to run.
+    result = required_linux_kernel_version('4.19')
+    if result:
+        pytest.skip(result)
 
     testsuite_run_time = time.asctime(time.localtime(time.time()))
     logger.info("Testsuite start time: {}".format(testsuite_run_time))
@@ -163,11 +167,6 @@ def setup_module(mod):
     # Creating configuration from JSON
     build_config_from_json(tgen, topo)
 
-    if version_cmp(platform.release(), '4.19') < 0:
-        error_msg = ('These tests will not run. (have kernel "{}", '
-            'requires kernel >= 4.19)'.format(platform.release()))
-        pytest.skip(error_msg)
-
     global BGP_CONVERGENCE
     global ADDR_TYPES
     ADDR_TYPES = check_address_types()
index 1846d431387fe944429df4ce3375b25b1df51385..5a6d3f3899d72d8f6bd2ce75aeaee688681ede1e 100644 (file)
@@ -36,6 +36,8 @@ import ConfigParser
 import traceback
 import socket
 import ipaddress
+import platform
+
 
 if sys.version_info[0] > 2:
     import io
@@ -46,7 +48,7 @@ else:
 
 from lib.topolog import logger, logger_config
 from lib.topogen import TopoRouter, get_topogen
-from lib.topotest import interface_set_status
+from lib.topotest import interface_set_status, version_cmp
 
 FRRCFG_FILE = "frr_json.conf"
 FRRCFG_BKUP_FILE = "frr_json_initial.conf"
@@ -3973,3 +3975,30 @@ def verify_vrf_vni(tgen, input_dict):
 
     logger.debug("Exiting lib API: {}".format(sys._getframe().f_code.co_name))
     return False
+
+
+def required_linux_kernel_version(required_version):
+    """
+    This API is used to check linux version compatibility of the test suite.
+    If version mentioned in required_version is higher than the linux kernel
+    of the system, test suite will be skipped. This API returns true or errormsg.
+
+    Parameters
+    ----------
+    * `required_version` : Kernel version required for the suites to run.
+
+    Usage
+    -----
+    result = linux_kernel_version_lowerthan('4.15')
+
+    Returns
+    -------
+    errormsg(str) or True
+    """
+    system_kernel = platform.release()
+    if version_cmp(system_kernel, required_version) < 0:
+        error_msg = ('These tests will not run on kernel "{}", '
+            'they require kernel >= {})'.format(system_kernel,
+                required_version ))
+        return error_msg
+    return True
\ No newline at end of file