diff options
Diffstat (limited to 'scripts/automation/regression')
-rwxr-xr-x | scripts/automation/regression/stateful_tests/trex_general_test.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/automation/regression/stateful_tests/trex_general_test.py b/scripts/automation/regression/stateful_tests/trex_general_test.py index fe38ed34..088bd97d 100755 --- a/scripts/automation/regression/stateful_tests/trex_general_test.py +++ b/scripts/automation/regression/stateful_tests/trex_general_test.py @@ -214,13 +214,25 @@ class CTRexGeneral_Test(unittest.TestCase): def check_general_scenario_results (self, trex_res, check_latency = True): try: + # check history size is enough + if len(trex_res._history) < 5: + self.fail('TRex results list is too short. Increase the test duration or check unexpected stopping.') + # check if test is valid if not trex_res.is_done_warmup(): self.fail('TRex did not reach warm-up situtaion. Results are not valid.') - # check history size is enough - if len(trex_res._history) < 5: - self.fail('TRex results list is too short. Increase the test duration or check unexpected stopping.') + # check that BW is not much more than expected + trex_exp_bps = int(trex_res.get_expected_tx_rate().get('m_tx_expected_bps') / 1e6) + trex_cur_bps = int(max(trex_res.get_value_list('trex-global.data.m_tx_bps')) / 1e6) + + if trex_exp_bps is None: + self.fail('Expected rate is None!') + if trex_cur_bps is None: + self.fail('Current rate is None!') + + if trex_exp_bps * 1.05 < trex_cur_bps: + self.fail('Got BW (%sMbps) that is %s%% more than expected (%sMbps)!' % (trex_cur_bps, round(100.0 * trex_cur_bps / trex_exp_bps - 100, 2), trex_exp_bps)) # check TRex number of drops trex_tx_pckt = trex_res.get_last_value("trex-global.data.m_total_tx_pkts") |