tests: Allow interface statistics to be gathered with some delay

Currently under system load tests that use verify_pim_interface_traffic
immediately after a interface down/up event are not giving any time
for pim to receive and process the data from that event.  Give
the test some time to gather this data.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
Donald Sharp 2021-11-29 12:11:43 -05:00
parent 31ccdb903f
commit 3d7d6e9ada

View File

@ -21,8 +21,10 @@ import os
import re import re
import sys import sys
import traceback import traceback
import functools
from copy import deepcopy from copy import deepcopy
from time import sleep from time import sleep
from lib import topotest
# Import common_config to use commomnly used APIs # Import common_config to use commomnly used APIs
@ -1481,6 +1483,8 @@ def verify_pim_interface_traffic(tgen, input_dict):
rnode = tgen.routers()[dut] rnode = tgen.routers()[dut]
logger.info("[DUT: %s]: Verifying pim interface traffic", dut) logger.info("[DUT: %s]: Verifying pim interface traffic", dut)
def show_pim_intf_traffic(rnode, dut, input_dict, output_dict):
show_pim_intf_traffic_json = run_frr_cmd( show_pim_intf_traffic_json = run_frr_cmd(
rnode, "show ip pim interface traffic json", isjson=True rnode, "show ip pim interface traffic json", isjson=True
) )
@ -1499,6 +1503,14 @@ def verify_pim_interface_traffic(tgen, input_dict):
"for interface %s [FAILED]!! " % (dut, state, intf) "for interface %s [FAILED]!! " % (dut, state, intf)
) )
return errormsg return errormsg
return None
test_func = functools.partial(
show_pim_intf_traffic, rnode, dut, input_dict, output_dict
)
(result, out) = topotest.run_and_expect(test_func, None, count=20, wait=1)
if not result:
return out
logger.debug("Exiting lib API: {}".format(sys._getframe().f_code.co_name)) logger.debug("Exiting lib API: {}".format(sys._getframe().f_code.co_name))
return output_dict return output_dict