tests: support setting random seed
Log the random seed used when running tests and provide means to re-use it in a later run. Type: feature Change-Id: I18d2a36ee802b901d4cca5577df41cec07f09cc0 Signed-off-by: Klement Sekera <ksekera@cisco.com> (cherry picked from commit 45a95dd782b91e9ae5665b5f95be4b6d7f99b879)
This commit is contained in:
parent
329c884aa2
commit
fc000f0e1d
@ -341,6 +341,8 @@ help:
|
||||
@echo ""
|
||||
@echo " SOCKET=1 - Communicate with VPP over Unix domain socket instead of SHM"
|
||||
@echo ""
|
||||
@echo " RND_SEED=seed - Seed RND with given seed"
|
||||
@echo ""
|
||||
@echo "Creating test documentation"
|
||||
@echo " test-doc - generate documentation for test framework"
|
||||
@echo " test-wipe-doc - wipe documentation for test framework"
|
||||
|
@ -500,8 +500,9 @@ class VppTestCase(unittest.TestCase):
|
||||
"""
|
||||
super(VppTestCase, cls).setUpClass()
|
||||
gc.collect() # run garbage collection first
|
||||
random.seed()
|
||||
cls.logger = get_logger(cls.__name__)
|
||||
seed = os.environ["RND_SEED"]
|
||||
random.seed(seed)
|
||||
if hasattr(cls, 'parallel_handler'):
|
||||
cls.logger.addHandler(cls.parallel_handler)
|
||||
cls.logger.propagate = False
|
||||
@ -522,6 +523,7 @@ class VppTestCase(unittest.TestCase):
|
||||
os.chdir(cls.tempdir)
|
||||
cls.logger.info("Temporary dir is %s, shm prefix is %s",
|
||||
cls.tempdir, cls.shm_prefix)
|
||||
cls.logger.debug("Random seed is %s" % seed)
|
||||
cls.setUpConstants()
|
||||
cls.reset_packet_infos()
|
||||
cls._captures = []
|
||||
|
@ -732,6 +732,11 @@ def parse_digit_env(env_var, default):
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
if "RND_SEED" not in os.environ:
|
||||
os.environ["RND_SEED"] = str(time.time())
|
||||
print("Setting RND_SEED=%s" % os.environ["RND_SEED"])
|
||||
else:
|
||||
print("Using provided RND_SEED=%s" % os.environ["RND_SEED"])
|
||||
verbose = parse_digit_env("V", 0)
|
||||
|
||||
test_timeout = parse_digit_env("TIMEOUT", 600) # default = 10 minutes
|
||||
|
@ -3,6 +3,7 @@
|
||||
from __future__ import print_function
|
||||
from multiprocessing import Pipe
|
||||
from sys import exit
|
||||
import os
|
||||
from framework import VppDiedError, VppTestCase, KeepAliveReporter
|
||||
|
||||
|
||||
@ -10,7 +11,9 @@ class SanityTestCase(VppTestCase):
|
||||
""" Sanity test case - verify whether VPP is able to start """
|
||||
pass
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.environ["RND_SEED"] = "1"
|
||||
rc = 0
|
||||
tc = SanityTestCase
|
||||
x, y = Pipe()
|
||||
|
Loading…
x
Reference in New Issue
Block a user