Fix the search algorithm
[samplevnf.git] / VNFs / DPPD-PROX / helper-scripts / rapid / rapid_test.py
index 16cf919..6badfb4 100644 (file)
@@ -20,6 +20,7 @@
 import yaml
 import requests
 import time
+import os
 import copy
 from past.utils import old_div
 from rapid_log import RapidLog
@@ -27,6 +28,8 @@ from rapid_log import bcolors
 inf = float("inf")
 from datetime import datetime as dt
 
+_CURR_DIR = os.path.dirname(os.path.realpath(__file__))
+
 class RapidTest(object):
     """
     Class to manage the testing
@@ -40,7 +43,7 @@ class RapidTest(object):
             self.test['maxr'] = 1
         if 'maxz' not in self.test.keys():
             self.test['maxz'] = inf
-        with open('format.yaml') as f:
+        with open(os.path.join(_CURR_DIR,'format.yaml')) as f:
             self.data_format = yaml.load(f, Loader=yaml.FullLoader)
 
     @staticmethod
@@ -164,6 +167,10 @@ class RapidTest(object):
             elapsed_time_str = ' NA |'
         else:
             elapsed_time_str = '{:>3.0f} |'.format(data['actual_duration'])
+        if data['mis_ordered'] is None:
+            mis_ordered_str = '    NA   '
+        else:
+            mis_ordered_str = '{:>9.0f} '.format(data['mis_ordered'])
         return(flow_number_str + '{:>5.1f}'.format(data['speed']) + '% ' + prefix['speed']
                 + '{:>6.3f}'.format(RapidTest.get_pps(data['speed'],size)) + ' Mpps|' +
                 pps_req_tx_str + pps_tx_str + bcolors.ENDC + pps_sut_tx_str +
@@ -172,16 +179,18 @@ class RapidTest(object):
                 + ' us | ' + '{:>9.0f}'.format(data['abs_tx']) + ' | {:>9.0f}'.format(data['abs_rx']) +
                 ' | '+ prefix['abs_drop_rate']+ '{:>9.0f}'.format(data['abs_tx']-data['abs_rx']) +
                 tot_drop_str + prefix['drop_rate'] +
-                '{:>5.2f}'.format(100*old_div(float(data['abs_tx']-data['abs_rx']),data['abs_tx'])) + bcolors.ENDC +
+                '{:>5.2f}'.format(100*old_div(float(data['abs_tx']-data['abs_rx']),data['abs_tx'])) + ' |' + 
+                prefix['mis_ordered'] + mis_ordered_str + bcolors.ENDC +
                 ' |' + elapsed_time_str)
 
     def run_iteration(self, requested_duration, flow_number, size, speed):
         BUCKET_SIZE_EXP = self.gen_machine.bucket_size_exp
+        sleep_time = self.test['sleep_time']
         LAT_PERCENTILE = self.test['lat_percentile']
         iteration_data= {}
         time_loop_data= {}
         iteration_data['r'] = 0;
-        sleep_time = 2
+
         while (iteration_data['r'] < self.test['maxr']):
             self.gen_machine.start_latency_cores()
             time.sleep(sleep_time)
@@ -370,6 +379,7 @@ class RapidTest(object):
                 iteration_data['avg_bg_rate'] = None
             #Stop generating
             self.gen_machine.stop_gen_cores()
+            time.sleep(3.5)
             self.gen_machine.stop_latency_cores()
             iteration_data['r'] += 1
             iteration_data['lat_avg'] = old_div(iteration_data['lat_avg'], float(tot_lat_measurement_duration))