tests: remove reliance on time.sleep

Use proper retry loop to wait for state to converge, not some arbitrary delay.

fixes #15878

Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
Christian Hopps 2024-05-02 06:09:42 -04:00
parent 2130575b8c
commit 727633a046
3 changed files with 45 additions and 41 deletions

View File

@ -62,7 +62,8 @@ def disable_debug(router):
router.vtysh_cmd("no debug northbound callbacks configuration")
def do_oper_test(tgen, query_results):
@retry(retry_timeout=30, initial_wait=1)
def _do_oper_test(tgen, qr):
r1 = tgen.gears["r1"].net
qcmd = (
@ -73,13 +74,9 @@ def do_oper_test(tgen, query_results):
r"""| sed -e 's/"if-index": [0-9][0-9]*/"if-index": "rubout"/'"""
r"""| sed -e 's/"id": [0-9][0-9]*/"id": "rubout"/'"""
)
doreset = True
# Don't use this for now.
dd_json_cmp = None
for qr in query_results:
step(f"Perform query '{qr[0]}'", reset=doreset)
if doreset:
doreset = False
expected = open(qr[1], encoding="ascii").read()
output = r1.cmd_nostatus(qcmd.format(qr[0], qr[2] if len(qr) > 2 else ""))
@ -119,6 +116,15 @@ def do_oper_test(tgen, query_results):
assert cmpout is None
def do_oper_test(tgen, query_results):
reset = True
for qr in query_results:
step(f"Perform query '{qr[0]}'", reset=reset)
if reset:
reset = False
_do_oper_test(tgen, qr)
def get_ip_networks(super_prefix, count):
count_log2 = math.log(count, 2)
if count_log2 != int(count_log2):

View File

@ -95,7 +95,6 @@ def test_oper(tgen):
check_kernel_32(r1, "12.12.12.12", 1, "")
check_kernel_32(r1, "13.13.13.13", 1, "red")
check_kernel_32(r1, "14.14.14.14", 1, "red")
time.sleep(2)
do_oper_test(tgen, query_results)

View File

@ -52,7 +52,6 @@ def test_oper_simple(tgen):
r1 = tgen.gears["r1"].net
time.sleep(2)
count = 20 * 1000
vrf = None # "red"