vpp/test/test_util.py
Klement Sekera 558ceabc6c tests: cpus awareness
Introduce MAX_CPUS parameters to control maximum number of CPUs used by
VPP(s) during testing, with default value 'auto' corresponding to all
CPUs available.

Calculate test CPU requirements by taking into account the number of
workers, so a test requires 1 (main thread) + # of worker CPUs.

When running tests, keep track of both running test jobs (controlled by
TEST_JOBS parameter) and free CPUs. This then causes two limits in the
system - to not exceed number of jobs in parallel but also to not exceed
number of CPUs available.

Skip tests which require more CPUs than are available in system (or more
than MAX_CPUS) and print a warning message.

Type: improvement
Change-Id: Ib8fda54e4c6a36179d64160bb87fbd3a0011762d
Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-04-16 09:26:33 +00:00

41 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python3
"""Test framework utility functions tests"""
import unittest
from framework import VppTestRunner, CPUInterface
from vpp_papi import mac_pton, mac_ntop
class TestUtil (CPUInterface, unittest.TestCase):
""" Test framework utility tests """
@classmethod
def is_tagged_run_solo(cls):
""" 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
@classmethod
def get_cpus_required(cls):
return 0
def test_mac_to_binary(self):
""" MAC to binary and back """
mac = 'aa:bb:cc:dd:ee:ff'
b = mac_pton(mac)
mac2 = mac_ntop(b)
self.assertEqual(type(mac), type(mac2))
self.assertEqual(mac2, mac)
if __name__ == '__main__':
unittest.main(testRunner=VppTestRunner)