diff options
Diffstat (limited to 'scripts/automation/regression')
15 files changed, 158 insertions, 53 deletions
diff --git a/scripts/automation/regression/CPlatform.py b/scripts/automation/regression/CPlatform.py index bc9d3c4b..0017e7db 100755 --- a/scripts/automation/regression/CPlatform.py +++ b/scripts/automation/regression/CPlatform.py @@ -520,18 +520,18 @@ class CPlatform(object): p1 = 'p'+str(idx), p2 = 'p'+str(idx+1) ) ) # config global arp to interfaces net address and vrf - if dual_if.client_if.get_dest_mac(): + if dual_if.client_if.get_ipv6_dest_mac(): conf_t_command_set.append('{mode}ipv6 neighbor {next_hop} {intf} {dest_mac}'.format( mode = unconfig_str, next_hop = server_net_next_hop, intf = dual_if.client_if.get_name(), - dest_mac = dual_if.client_if.get_dest_mac())) - if dual_if.server_if.get_dest_mac(): + dest_mac = dual_if.client_if.get_ipv6_dest_mac())) + if dual_if.server_if.get_ipv6_dest_mac(): conf_t_command_set.append('{mode}ipv6 neighbor {next_hop} {intf} {dest_mac}'.format( mode = unconfig_str, next_hop = client_net_next_hop, intf = dual_if.server_if.get_name(), - dest_mac = dual_if.server_if.get_dest_mac())) + dest_mac = dual_if.server_if.get_ipv6_dest_mac())) conf_t_command_set.append('{mode}route-map {pre}_{p1}_to_{p2} permit 10'.format( mode = unconfig_str, diff --git a/scripts/automation/regression/functional_tests/cpp_gtests_test.py b/scripts/automation/regression/functional_tests/cpp_gtests_test.py new file mode 100644 index 00000000..6535da84 --- /dev/null +++ b/scripts/automation/regression/functional_tests/cpp_gtests_test.py @@ -0,0 +1,46 @@ +import outer_packages +from nose.plugins.attrib import attr +import functional_general_test +from trex import CTRexScenario +import os, sys +from subprocess import Popen, STDOUT +import shlex +import time +import errno +import tempfile + +# runs command +def run_command(command, timeout = 15, poll_rate = 0.1, cwd = None): + # pipes might stuck, even with timeout + with tempfile.TemporaryFile() as stdout_file: + proc = Popen(shlex.split(command), stdout = stdout_file, stderr = STDOUT, cwd = cwd, close_fds = True, universal_newlines = True) + if timeout > 0: + for i in range(int(timeout/poll_rate)): + time.sleep(poll_rate) + if proc.poll() is not None: # process stopped + break + if proc.poll() is None: + proc.kill() # timeout + stdout_file.seek(0) + return (errno.ETIME, '%s\n\n...Timeout of %s second(s) is reached!' % (stdout_file.read().decode(errors = 'replace'), timeout)) + else: + proc.wait() + stdout_file.seek(0) + return (proc.returncode, stdout_file.read().decode(errors = 'replace')) + +@attr('run_on_trex') +class CPP_Test(functional_general_test.CGeneralFunctional_Test): + def test_gtests_all(self): + print('') + bp_sim = os.path.join(CTRexScenario.scripts_path, 'bp-sim-64') + ret, out = run_command('%s --ut' % bp_sim, cwd = CTRexScenario.scripts_path) + print('Output:\n%s' % out) + if ret: + raise Exception('Non zero return status of gtests (%s)' % ret) + + def test_gtests_valgrind(self): + print('') + ret, out = run_command(os.path.join(CTRexScenario.scripts_path, 'run-gtest-clean'), cwd = CTRexScenario.scripts_path) + print('Output:\n%s' % out) + if ret: + raise Exception('Non zero return status of Valgrind gtests (%s)' % ret) diff --git a/scripts/automation/regression/functional_tests/platform_dual_if_obj_test.py b/scripts/automation/regression/functional_tests/platform_dual_if_obj_test.py index d848b466..a97a3305 100755 --- a/scripts/automation/regression/functional_tests/platform_dual_if_obj_test.py +++ b/scripts/automation/regression/functional_tests/platform_dual_if_obj_test.py @@ -9,10 +9,10 @@ from nose.tools import assert_not_equal class CDualIfObj_Test(functional_general_test.CGeneralFunctional_Test): def setUp(self): - self.if_1 = CIfObj('gig0/0/1', '1.1.1.1', '2001:DB8:0:2222:0:0:0:1', '0000.0001.0000', '0000.0001.0000', IFType.Client) - self.if_2 = CIfObj('gig0/0/2', '1.1.2.1', '2001:DB8:1:2222:0:0:0:1', '0000.0002.0000', '0000.0002.0000', IFType.Server) - self.if_3 = CIfObj('gig0/0/3', '1.1.3.1', '2001:DB8:2:2222:0:0:0:1', '0000.0003.0000', '0000.0003.0000', IFType.Client) - self.if_4 = CIfObj('gig0/0/4', '1.1.4.1', '2001:DB8:3:2222:0:0:0:1', '0000.0004.0000', '0000.0004.0000', IFType.Server) + self.if_1 = CIfObj('gig0/0/1', '1.1.1.1', '2001:DB8:0:2222:0:0:0:1', '0000.0001.0000', '0000.0001.0000', 0, IFType.Client) + self.if_2 = CIfObj('gig0/0/2', '1.1.2.1', '2001:DB8:1:2222:0:0:0:1', '0000.0002.0000', '0000.0002.0000', 0, IFType.Server) + self.if_3 = CIfObj('gig0/0/3', '1.1.3.1', '2001:DB8:2:2222:0:0:0:1', '0000.0003.0000', '0000.0003.0000', 0, IFType.Client) + self.if_4 = CIfObj('gig0/0/4', '1.1.4.1', '2001:DB8:3:2222:0:0:0:1', '0000.0004.0000', '0000.0004.0000', 0, IFType.Server) self.dual_1 = CDualIfObj(None, self.if_1, self.if_2) self.dual_2 = CDualIfObj('dup', self.if_3, self.if_4) @@ -28,4 +28,4 @@ class CDualIfObj_Test(functional_general_test.CGeneralFunctional_Test): assert_equal ( self.dual_2.is_duplicated() , True ) def tearDown(self): - pass
\ No newline at end of file + pass diff --git a/scripts/automation/regression/functional_tests/platform_if_obj_test.py b/scripts/automation/regression/functional_tests/platform_if_obj_test.py index 534d4170..2412d3cc 100755 --- a/scripts/automation/regression/functional_tests/platform_if_obj_test.py +++ b/scripts/automation/regression/functional_tests/platform_if_obj_test.py @@ -10,8 +10,8 @@ class CIfObj_Test(functional_general_test.CGeneralFunctional_Test): test_idx = 1 def setUp(self): - self.if_1 = CIfObj('gig0/0/1', '1.1.1.1', '2001:DB8:0:2222:0:0:0:1', '0000.0001.0000', '0000.0001.0000', IFType.Client) - self.if_2 = CIfObj('TenGig0/0/0', '1.1.2.1', '2001:DB8:1:2222:0:0:0:1', '0000.0002.0000', '0000.0002.0000', IFType.Server) + self.if_1 = CIfObj('gig0/0/1', '1.1.1.1', '2001:DB8:0:2222:0:0:0:1', '0000.0001.0000', '0000.0001.0000', 0, IFType.Client) + self.if_2 = CIfObj('TenGig0/0/0', '1.1.2.1', '2001:DB8:1:2222:0:0:0:1', '0000.0002.0000', '0000.0002.0000', 0, IFType.Server) CIfObj_Test.test_idx += 1 def test_id_allocation(self): diff --git a/scripts/automation/regression/platform_cmd_link.py b/scripts/automation/regression/platform_cmd_link.py index 8162e29d..275da656 100755 --- a/scripts/automation/regression/platform_cmd_link.py +++ b/scripts/automation/regression/platform_cmd_link.py @@ -189,12 +189,13 @@ class CDeviceCfg(object): class CIfObj(object): _obj_id = 0 - def __init__(self, if_name, ipv4_addr, ipv6_addr, src_mac_addr, dest_mac_addr, if_type): + def __init__(self, if_name, ipv4_addr, ipv6_addr, src_mac_addr, dest_mac_addr, dest_ipv6_mac_addr, if_type): self.__get_and_increment_id() self.if_name = if_name self.if_type = if_type self.src_mac_addr = src_mac_addr self.dest_mac_addr = dest_mac_addr + self.dest_ipv6_mac_addr = dest_ipv6_mac_addr self.ipv4_addr = ipv4_addr self.ipv6_addr = ipv6_addr self.pair_parent = None # a pointer to CDualIfObj which holds this interface and its pair-complement @@ -212,6 +213,12 @@ class CIfObj(object): def get_dest_mac (self): return self.dest_mac_addr + def get_ipv6_dest_mac (self): + if self.dest_mac_addr != 0: + return self.dest_mac_addr + else: + return self.dest_ipv6_mac_addr + def get_id (self): return self._obj_id @@ -312,11 +319,16 @@ class CIfManager(object): client_dest_mac = intf_pair['client']['dest_mac_addr'] else: client_dest_mac = 0 + if 'dest_ipv6_mac_addr' in intf_pair['client']: + client_dest_ipv6_mac = intf_pair['client']['dest_ipv6_mac_addr'] + else: + client_dest_ipv6_mac = 0 client_obj = CIfObj(if_name = intf_pair['client']['name'], ipv4_addr = tmp_ipv4_addr, ipv6_addr = tmp_ipv6_addr, src_mac_addr = intf_pair['client']['src_mac_addr'], dest_mac_addr = client_dest_mac, + dest_ipv6_mac_addr = client_dest_ipv6_mac, if_type = IFType.Client) # generate network addresses for server side, and initialize server if object @@ -327,11 +339,16 @@ class CIfManager(object): server_dest_mac = intf_pair['server']['dest_mac_addr'] else: server_dest_mac = 0 + if 'dest_ipv6_mac_addr' in intf_pair['server']: + server_dest_ipv6_mac = intf_pair['server']['dest_ipv6_mac_addr'] + else: + server_dest_ipv6_mac = 0 server_obj = CIfObj(if_name = intf_pair['server']['name'], ipv4_addr = tmp_ipv4_addr, ipv6_addr = tmp_ipv6_addr, src_mac_addr = intf_pair['server']['src_mac_addr'], dest_mac_addr = server_dest_mac, + dest_ipv6_mac_addr = server_dest_ipv6_mac, if_type = IFType.Server) dual_intf_obj = CDualIfObj(vrf_name = intf_pair['vrf_name'], diff --git a/scripts/automation/regression/setups/trex-dan/config.yaml b/scripts/automation/regression/setups/trex-dan/config.yaml index be972001..d147502f 100644 --- a/scripts/automation/regression/setups/trex-dan/config.yaml +++ b/scripts/automation/regression/setups/trex-dan/config.yaml @@ -54,11 +54,11 @@ router: - client : name : GigabitEthernet0/0/1 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 server : name : GigabitEthernet0/0/2 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 vrf_name : null tftp: diff --git a/scripts/automation/regression/setups/trex25/config.yaml b/scripts/automation/regression/setups/trex25/config.yaml index ac19f170..c4b3743d 100644 --- a/scripts/automation/regression/setups/trex25/config.yaml +++ b/scripts/automation/regression/setups/trex25/config.yaml @@ -52,38 +52,38 @@ router: - client : name : GigabitEthernet0/1/0 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 server : name : GigabitEthernet0/1/1 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 vrf_name : - client : name : GigabitEthernet0/1/2 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 server : name : GigabitEthernet0/1/4 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 vrf_name : - client : name : GigabitEthernet0/1/5 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 server : name : GigabitEthernet0/1/3 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 vrf_name : - client : name : GigabitEthernet0/1/6 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 server : name : GigabitEthernet0/1/7 src_mac_addr : 0000.0001.0000 -# dest_mac_addr : 0000.0001.0000 + dest_ipv6_mac_addr : 0000.0001.0000 vrf_name : tftp: diff --git a/scripts/automation/regression/stateful_tests/trex_general_test.py b/scripts/automation/regression/stateful_tests/trex_general_test.py index 968eea1c..e968d380 100755 --- a/scripts/automation/regression/stateful_tests/trex_general_test.py +++ b/scripts/automation/regression/stateful_tests/trex_general_test.py @@ -175,10 +175,11 @@ class CTRexGeneral_Test(unittest.TestCase): # report benchmarks if self.GAManager: try: - setup_test = '%s.%s' % (CTRexScenario.setup_name, self.get_name()) - self.GAManager.gaAddAction(Event = 'stateful_test', action = setup_test, label = 'bw_per_core', value = int(test_norm_cpu)) - self.GAManager.gaAddAction(Event = 'stateful_test', action = setup_test, label = 'bw_per_core_exp', value = int(expected_norm_cpu)) - self.GAManager.emptyAndReportQ() + pass + #setup_test = '%s.%s' % (CTRexScenario.setup_name, self.get_name()) + #self.GAManager.gaAddAction(Event = 'stateful_test', action = setup_test, label = 'bw_per_core', value = int(test_norm_cpu)) + #self.GAManager.gaAddAction(Event = 'stateful_test', action = setup_test, label = 'bw_per_core_exp', value = int(expected_norm_cpu)) + #self.GAManager.emptyAndReportQ() except Exception as e: print('Sending GA failed: %s' % e) diff --git a/scripts/automation/regression/stateful_tests/trex_ipv6_test.py b/scripts/automation/regression/stateful_tests/trex_ipv6_test.py index b03de0b4..4d6f7953 100755 --- a/scripts/automation/regression/stateful_tests/trex_ipv6_test.py +++ b/scripts/automation/regression/stateful_tests/trex_ipv6_test.py @@ -29,6 +29,7 @@ class CTRexIPv6_Test(CTRexGeneral_Test): core = self.get_benchmark_param('cores') ret = self.trex.start_trex( + cfg = '/etc/trex_cfg_mac.yaml', c = core, m = mult, p = True, @@ -66,6 +67,7 @@ class CTRexIPv6_Test(CTRexGeneral_Test): core = self.get_benchmark_param('cores', test_name = 'test_ipv6_simple') ret = self.trex.start_trex( + cfg = '/etc/trex_cfg_mac.yaml', c = core, m = mult, p = True, diff --git a/scripts/automation/regression/stateful_tests/trex_rx_test.py b/scripts/automation/regression/stateful_tests/trex_rx_test.py index 6c6c535a..161856b1 100755 --- a/scripts/automation/regression/stateful_tests/trex_rx_test.py +++ b/scripts/automation/regression/stateful_tests/trex_rx_test.py @@ -165,6 +165,7 @@ class CTRexRx_Test(CTRexGeneral_Test): sample_rate = self.get_benchmark_param('rx_sample_rate') ret = self.trex.start_trex( + cfg = '/etc/trex_cfg_mac.yaml', c = core, m = mult, p = True, @@ -199,6 +200,7 @@ class CTRexRx_Test(CTRexGeneral_Test): sample_rate = self.get_benchmark_param('rx_sample_rate') ret = self.trex.start_trex( + cfg = '/etc/trex_cfg_mac.yaml', c = core, m = mult, p = True, diff --git a/scripts/automation/regression/stateless_tests/stl_benchmark_test.py b/scripts/automation/regression/stateless_tests/stl_benchmark_test.py index bbdf2d30..6940efd3 100755 --- a/scripts/automation/regression/stateless_tests/stl_benchmark_test.py +++ b/scripts/automation/regression/stateless_tests/stl_benchmark_test.py @@ -54,15 +54,16 @@ class STLBenchmark_Test(CStlGeneral_Test): # report benchmarks if self.GAManager: try: - profile_repr = '%s.%s %s' % (CTRexScenario.setup_name, - os.path.basename(profile_bench['name']), - repr(kwargs).replace("'", '')) - self.GAManager.gaAddAction(Event = 'stateless_test', action = profile_repr, - label = 'bw_per_core', value = int(agv_bw_per_core)) + pass + #profile_repr = '%s.%s %s' % (CTRexScenario.setup_name, + # os.path.basename(profile_bench['name']), + # repr(kwargs).replace("'", '')) + #self.GAManager.gaAddAction(Event = 'stateless_test', action = profile_repr, + # label = 'bw_per_core', value = int(agv_bw_per_core)) # TODO: report expected once acquired #self.GAManager.gaAddAction(Event = 'stateless_test', action = profile_repr, # label = 'bw_per_core_exp', value = int(expected_norm_cpu)) - self.GAManager.emptyAndReportQ() + #self.GAManager.emptyAndReportQ() except Exception as e: print('Sending GA failed: %s' % e) diff --git a/scripts/automation/regression/stateless_tests/stl_general_test.py b/scripts/automation/regression/stateless_tests/stl_general_test.py index a5fb905e..590733ba 100644 --- a/scripts/automation/regression/stateless_tests/stl_general_test.py +++ b/scripts/automation/regression/stateless_tests/stl_general_test.py @@ -10,7 +10,7 @@ class CStlGeneral_Test(CTRexGeneral_Test): """This class defines the general stateless testcase of the TRex traffic generator""" def setUp(self): - self.stl_trex = CTRexScenario.stl_trex + self.stl_trex = CTRexScenario.stl_trex if CTRexScenario.stl_trex else 'mock' CTRexGeneral_Test.setUp(self) # check basic requirements, should be verified at test_connectivity, here only skip test if CTRexScenario.stl_init_error: @@ -67,15 +67,40 @@ class STLBasic_Test(CStlGeneral_Test): def test_connectivity(self): if not self.is_loopback: try: + sys.stdout.flush() + sys.stdout.write('Configuring DUT... ') + start_time = time.time() if CTRexScenario.router_cfg['forceCleanConfig']: CTRexScenario.router.load_clean_config() CTRexScenario.router.configure_basic_interfaces() CTRexScenario.router.config_pbr(mode = "config") CTRexScenario.router.config_ipv6_pbr(mode = "config") + sys.stdout.write('done. (%ss)\n' % int(time.time() - start_time)) except Exception as e: + print('') CTRexScenario.stl_init_error = 'Could not configure device, err: %s' % e self.fail(CTRexScenario.stl_init_error) return + + try: + sys.stdout.write('Starting TRex... ') + start_time = time.time() + cores = self.configuration.trex.get('trex_cores', 1) + if self.is_virt_nics and cores > 1: + raise Exception('Number of cores should be 1 with virtual NICs') + if not CTRexScenario.no_daemon: + self.trex.start_stateless(c = cores) + self.stl_trex = STLClient(username = 'TRexRegression', + server = self.configuration.trex['trex_name'], + verbose_level = CTRexScenario.json_verbose) + CTRexScenario.stl_trex = self.stl_trex + sys.stdout.write('done. (%ss)\n' % int(time.time() - start_time)) + except Exception as e: + print('') + CTRexScenario.stl_init_error = 'Could not start stateless TRex, err: %s' % e + self.fail(CTRexScenario.stl_init_error) + return + if not self.connect(): CTRexScenario.stl_init_error = 'Client could not connect' self.fail(CTRexScenario.stl_init_error) diff --git a/scripts/automation/regression/stateless_tests/stl_performance_test.py b/scripts/automation/regression/stateless_tests/stl_performance_test.py index ac39ee6b..62a1912f 100644 --- a/scripts/automation/regression/stateless_tests/stl_performance_test.py +++ b/scripts/automation/regression/stateless_tests/stl_performance_test.py @@ -54,12 +54,25 @@ class PerformanceReport(object): return self.GOLDEN_NORMAL + def report_to_analytics(self, ga, golden_mpps): + print("\n* Reporting to GA *\n") + ga.gaAddTestQuery(TestName = self.scenario, + TRexMode = 'stl', + SetupName = self.machine_name, + TestType = 'performance', + Mppspc = self.avg_mpps_per_core, + ActionNumber = '<fill_me>', + GoldenMin = golden_mpps['min'], + GoldenMax = golden_mpps['max']) + + ga.emptyAndReportQ() class STLPerformance_Test(CStlGeneral_Test): """Tests for stateless client""" def setUp(self): + CStlGeneral_Test.setUp(self) self.c = CTRexScenario.stl_trex @@ -233,7 +246,10 @@ class STLPerformance_Test(CStlGeneral_Test): report = self.execute_single_scenario_iteration(scenario_cfg) rc = report.check_golden(golden) - if rc == PerformanceReport.GOLDEN_NORMAL: + if (rc == PerformanceReport.GOLDEN_NORMAL) or (rc == PerformanceReport.GOLDEN_BETTER): + if self.GAManager: + report.report_to_analytics(self.GAManager, golden) + return if rc == PerformanceReport.GOLDEN_BETTER: @@ -315,7 +331,7 @@ class STLPerformance_Test(CStlGeneral_Test): avg_mpps_per_core = avg_mpps * (100.0 / avg_cpu) report = PerformanceReport(scenario = scenario_cfg['name'], - machine_name = os.uname()[1], + machine_name = CTRexScenario.setup_name, core_count = scenario_cfg['core_count'], avg_cpu = avg_cpu, avg_gbps = avg_gbps, diff --git a/scripts/automation/regression/trex.py b/scripts/automation/regression/trex.py index aad8f041..7b96f2f8 100644 --- a/scripts/automation/regression/trex.py +++ b/scripts/automation/regression/trex.py @@ -40,6 +40,7 @@ class CTRexScenario: no_daemon = False debug_image = False test = None + json_verbose = False class CTRexRunner: """This is an instance for generating a CTRexRunner""" diff --git a/scripts/automation/regression/trex_unit_test.py b/scripts/automation/regression/trex_unit_test.py index 7c2e317b..7a6c4260 100755 --- a/scripts/automation/regression/trex_unit_test.py +++ b/scripts/automation/regression/trex_unit_test.py @@ -39,7 +39,7 @@ from trex import CTRexScenario from trex_stf_lib.trex_client import * from trex_stf_lib.trex_exceptions import * from trex_stl_lib.api import * -from trex_stl_lib.utils.GAObjClass import GAmanager +from trex_stl_lib.utils.GAObjClass import GAmanager_Regression import trex import socket from pprint import pprint @@ -186,6 +186,8 @@ class CTRexTestConfiguringPlugin(Plugin): options.config_path = CTRexScenario.setup_dir if not options.config_path: raise Exception('Please specify path to config.yaml using --cfg parameter or env. variable SETUP_DIR') + options.config_path = options.config_path.rstrip('/') + CTRexScenario.setup_name = os.path.basename(options.config_path) self.configuration = misc_methods.load_complete_config_file(os.path.join(options.config_path, 'config.yaml')) self.configuration.trex['trex_name'] = address_to_ip(self.configuration.trex['trex_name']) # translate hostname to ip self.benchmark = misc_methods.load_benchmark_config_file(os.path.join(options.config_path, 'benchmark.yaml')) @@ -204,6 +206,7 @@ class CTRexTestConfiguringPlugin(Plugin): CTRexScenario.modes = set(self.modes) CTRexScenario.server_logs = self.server_logs CTRexScenario.debug_image = options.debug_image + CTRexScenario.json_verbose = self.json_verbose if not self.no_daemon: CTRexScenario.trex = CTRexClient(trex_host = self.configuration.trex['trex_name'], verbose = self.json_verbose, @@ -213,14 +216,14 @@ class CTRexTestConfiguringPlugin(Plugin): print('Could not connect to master daemon') sys.exit(-1) if options.ga and CTRexScenario.setup_name: - CTRexScenario.GAManager = GAmanager(GoogleID = 'UA-75220362-4', - UserID = CTRexScenario.setup_name, - QueueSize = 100, - Timeout = 5, # seconds - UserPermission = 1, - BlockingMode = 1, - appName = 'TRex', - appVer = '1.11.232') + CTRexScenario.GAManager = GAmanager_Regression(GoogleID = 'UA-75220362-3', + AnalyticsUserID = CTRexScenario.setup_name, + QueueSize = 100, + Timeout = 3, # seconds + UserPermission = 1, + BlockingMode = 0, + appName = 'TRex', + appVer = CTRexScenario.trex_version) def begin (self): @@ -253,15 +256,6 @@ class CTRexTestConfiguringPlugin(Plugin): print('TRex is already running') sys.exit(-1) - if self.stateless: - cores = self.configuration.trex.get('trex_cores', 1) - if 'virt_nics' in self.modes and cores > 1: - raise Exception('Number of cores should be 1 with virtual NICs') - if not self.no_daemon: - client.start_stateless(c = cores) - CTRexScenario.stl_trex = STLClient(username = 'TRexRegression', - server = self.configuration.trex['trex_name'], - verbose_level = self.json_verbose) if 'loopback' not in self.modes: CTRexScenario.router_cfg = dict(config_dict = self.configuration.router, forceImageReload = self.load_image, |