diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/framework.py | 18 | ||||
-rwxr-xr-x | test/test_util.py | 9 |
2 files changed, 26 insertions, 1 deletions
diff --git a/test/framework.py b/test/framework.py index 7ab5b453b8e..c9ecafd2bca 100644 --- a/test/framework.py +++ b/test/framework.py @@ -257,7 +257,11 @@ class KeepAliveReporter(object): class TestCaseTag(Enum): + # marks the suites that must run at the end + # using only a single test runner RUN_SOLO = 1 + # marks the suites broken on VPP multi-worker + FIXME_VPP_WORKERS = 2 def create_tag_decorator(e): @@ -269,7 +273,9 @@ def create_tag_decorator(e): return cls return decorator + tag_run_solo = create_tag_decorator(TestCaseTag.RUN_SOLO) +tag_fixme_vpp_workers = create_tag_decorator(TestCaseTag.FIXME_VPP_WORKERS) class VppTestCase(unittest.TestCase): @@ -398,7 +404,10 @@ class VppTestCase(unittest.TestCase): cpu_core_number = cls.get_least_used_cpu() if not hasattr(cls, "worker_config"): - cls.worker_config = "" + cls.worker_config = os.getenv("VPP_WORKER_CONFIG", "") + if cls.worker_config != "": + if cls.has_tag(TestCaseTag.FIXME_VPP_WORKERS): + cls.worker_config = "" default_variant = os.getenv("VARIANT") if default_variant is not None: @@ -1435,6 +1444,13 @@ class VppTestResult(unittest.TestResult): c = YELLOW test_title_colored = colorize("SOLO RUN: " + test_title, c) + # This block may overwrite the colorized title above, + # but we want this to stand out and be fixed + if test.has_tag(TestCaseTag.FIXME_VPP_WORKERS): + c = RED + w = "FIXME with VPP workers: " + test_title_colored = colorize(w + test_title, c) + if not hasattr(test.__class__, '_header_printed'): print(double_line_delim) print(test_title_colored) diff --git a/test/test_util.py b/test/test_util.py index eb20531505e..421afce4d5d 100755 --- a/test/test_util.py +++ b/test/test_util.py @@ -14,6 +14,15 @@ class TestUtil (unittest.TestCase): """ if the test case class is timing-sensitive - return true """ return False + @classmethod + def has_tag(cls, tag): + """ if the test case has a given tag - return true """ + try: + return tag in cls.test_tags + except AttributeError: + pass + return False + def test_mac_to_binary(self): """ MAC to binary and back """ mac = 'aa:bb:cc:dd:ee:ff' |