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")
"""
# add latest dump to history
- if latest_dump != {}:
+ if latest_dump:
self._history.append(latest_dump)
if not self.valid:
self.valid = True
self._current_tx_rate = CTRexResult.__get_value_by_path(latest_dump, "trex-global.data", "m_tx_(?!expected_)\w+")
if not self._done_warmup and self._expected_tx_rate is not None:
- # check for up to 2% change between expected and actual
- if (self._current_tx_rate['m_tx_bps'] > 0.98 * self._expected_tx_rate['m_tx_expected_bps']):
+ # check for up to 4% change between expected and actual
+ if (self._current_tx_rate['m_tx_bps'] > 0.96 * self._expected_tx_rate['m_tx_expected_bps']):
self._done_warmup = True
latest_dump['warmup_barrier'] = True