summaryrefslogtreecommitdiffstats
path: root/scripts/automation/regression/unit_tests
diff options
context:
space:
mode:
authorYaroslav Brustinov <ybrustin@cisco.com>2016-03-04 03:46:39 +0200
committerYaroslav Brustinov <ybrustin@cisco.com>2016-03-04 03:46:39 +0200
commita842b4cfd27f03db83c0bb8ed10816465cc510ad (patch)
tree34596b6959c36a2e16f9dc29131f72a20ba03b34 /scripts/automation/regression/unit_tests
parentf749b4358cfedd1ef7e0b58f69f63ee4d00554ea (diff)
ignore python3 cache, generated code files
add option to export Profile (and thus stream too) to Python code add for each profile in functional tests generating it to Python code and comparing to same pcap result add loading Prifile via add_streams() fix IMIX rates in HLTAPI used with line % and bps Scapy packet builder: fixes to load of pcap/yaml - use MAC from pcap (with flag), remove FCS (with flag), support for VM with offsets by name
Diffstat (limited to 'scripts/automation/regression/unit_tests')
-rw-r--r--scripts/automation/regression/unit_tests/functional_tests/stl_basic_tests.py33
1 files changed, 27 insertions, 6 deletions
diff --git a/scripts/automation/regression/unit_tests/functional_tests/stl_basic_tests.py b/scripts/automation/regression/unit_tests/functional_tests/stl_basic_tests.py
index 2099c953..44735435 100644
--- a/scripts/automation/regression/unit_tests/functional_tests/stl_basic_tests.py
+++ b/scripts/automation/regression/unit_tests/functional_tests/stl_basic_tests.py
@@ -13,7 +13,6 @@ import sys
import os
import subprocess
-# should be set to run explicitly, not as part of all regression tests
@attr('run_on_trex')
class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
def setUp (self):
@@ -117,7 +116,7 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
os.unlink(output_cap)
- def run_py_profile_path (self, profile, options,silent = False, do_no_remove=False,compare =True):
+ def run_py_profile_path (self, profile, options,silent = False, do_no_remove=False,compare =True, test_generated=True):
output_cap = "a.pcap"
input_file = os.path.join('stl/', profile)
golden_file = os.path.join('exp',os.path.basename(profile).split('.')[0]+'.pcap');
@@ -133,8 +132,26 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
if compare:
self.compare_caps(output_cap, golden_file)
finally:
- if not do_no_remove:
+ if not do_no_remove:
os.unlink(output_cap)
+ if test_generated:
+ try:
+ from trex_stl_lib.api import STLProfile # if test is skipped, don't load it
+ generated_filename = input_file.replace('.py', '_GENERATED.py').replace('.yaml', '_GENERATED.py')
+ if input_file.endswith('.py'):
+ profile = STLProfile.load_py(input_file)
+ elif input_file.endswith('.yaml'):
+ profile = STLProfile.load_yaml(input_file)
+ profile.dump_to_code(generated_filename)
+ rc = self.run_sim(generated_filename, output_cap, options, silent)
+ assert_equal(rc, True)
+
+ if compare:
+ self.compare_caps(output_cap, golden_file)
+ finally:
+ if not do_no_remove:
+ os.unlink(generated_filename)
+ os.unlink(output_cap)
def test_stl_profiles (self):
@@ -170,7 +187,7 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
["udp_1pkt_pcap_relative_path.py","-m 1 -l 3",True],
["udp_1pkt_tuple_gen_split.py","-m 1 -c 2 -l 100",True],
["udp_1pkt_range_clients_split.py","-m 1 -c 2 -l 100",True],
- ["udp_1pkt_vxlan.py","-m 1 -c 1 -l 17",True],
+ ["udp_1pkt_vxlan.py","-m 1 -c 1 -l 17",True, False], # can't generate: no VXLAN in Scapy, only in profile
["udp_1pkt_ipv6_in_ipv4.py","-m 1 -c 1 -l 17",True],
["yaml/imix_3pkt.yaml","-m 50kpps --limit 20 --cores 2",True],
["yaml/imix_3pkt_vm.yaml","-m 50kpps --limit 20 --cores 2",True],
@@ -195,7 +212,11 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
for obj in p:
- self.run_py_profile_path (obj[0],obj[1],compare =obj[2], do_no_remove=True)
+ try:
+ test_generated = obj[3]
+ except: # check generated if not said otherwise
+ test_generated = True
+ self.run_py_profile_path (obj[0],obj[1],compare =obj[2], test_generated = test_generated, do_no_remove=True)
def test_hlt_profiles (self):
@@ -212,7 +233,7 @@ class CStlBasic_Test(functional_general_test.CGeneralFunctional_Test):
['hlt/hlt_tcp_ranges.py', '-m 1 -l 20', True],
['hlt/hlt_udp_ports.py', '-m 1 -l 20', True],
['hlt/hlt_udp_random_ports.py', '-m 1 -l 20', True],
- #['hlt/hlt_ip_ranges.py', '-m 1 -l 20', True], # can't run now, random on full range issue
+ ['hlt/hlt_ip_ranges.py', '-m 1 -l 20', True],
['hlt/hlt_framesize_vm.py', '-m 1 -l 20', True],
['hlt/hlt_l3_length_vm.py', '-m 1 -l 20', True],
['hlt/hlt_vlan_default.py', '-m 1 -l 20', True],