summaryrefslogtreecommitdiffstats
path: root/scripts/automation/regression
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/automation/regression')
-rwxr-xr-xscripts/automation/regression/CPlatform.py8
-rw-r--r--scripts/automation/regression/functional_tests/cpp_gtests_test.py46
-rwxr-xr-xscripts/automation/regression/functional_tests/platform_dual_if_obj_test.py10
-rwxr-xr-xscripts/automation/regression/functional_tests/platform_if_obj_test.py4
-rwxr-xr-xscripts/automation/regression/platform_cmd_link.py19
-rw-r--r--scripts/automation/regression/setups/trex-dan/config.yaml4
-rw-r--r--scripts/automation/regression/setups/trex25/config.yaml16
-rwxr-xr-xscripts/automation/regression/stateful_tests/trex_general_test.py9
-rwxr-xr-xscripts/automation/regression/stateful_tests/trex_ipv6_test.py2
-rwxr-xr-xscripts/automation/regression/stateful_tests/trex_rx_test.py2
-rwxr-xr-xscripts/automation/regression/stateless_tests/stl_benchmark_test.py13
-rw-r--r--scripts/automation/regression/stateless_tests/stl_general_test.py27
-rw-r--r--scripts/automation/regression/stateless_tests/stl_performance_test.py20
-rw-r--r--scripts/automation/regression/trex.py1
-rwxr-xr-xscripts/automation/regression/trex_unit_test.py30
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,