aboutsummaryrefslogtreecommitdiffstats
path: root/host
diff options
context:
space:
mode:
authorGrant Meyerhoff <grant.meyerhoff@ni.com>2024-01-04 11:51:45 -0600
committerAki Tomita <121511582+atomita-ni@users.noreply.github.com>2024-01-31 15:24:54 -0600
commita05fbb0522921c80ea2b11533017c980ed77f067 (patch)
treed6c23b734955fe3d1bc6179aa6bb9fd23496a200 /host
parentx3xx: Adding a comment that the DAC runs with an interpolation factor of 4 (diff)
downloaduhd-a05fbb0522921c80ea2b11533017c980ed77f067.tar.xz
uhd-a05fbb0522921c80ea2b11533017c980ed77f067.zip
ci: refactor streaming steps
This change removes several hardcoded values from the code and separates x410 from x4xx as dut type
Diffstat (limited to 'host')
-rw-r--r--host/tests/pytests/conftest.py12
-rw-r--r--host/tests/pytests/test_raw_udp_streaming.py72
-rw-r--r--host/tests/pytests/test_streaming.py9
3 files changed, 52 insertions, 41 deletions
diff --git a/host/tests/pytests/conftest.py b/host/tests/pytests/conftest.py
index 5099c7cbe..cf05d5320 100644
--- a/host/tests/pytests/conftest.py
+++ b/host/tests/pytests/conftest.py
@@ -7,7 +7,7 @@ dut_type_list = [
"E320",
"X310",
"X310_TwinRx",
- "x4xx"
+ "x410"
]
@@ -71,6 +71,16 @@ def pytest_addoption(parser):
type=str,
nargs='?',
help="configures num_send_frames parameter")
+ parser.addoption(
+ "--sfp_int0",
+ type=str,
+ required=False,
+ help="configures name of sfp0 interface")
+ parser.addoption(
+ "--sfp_int1",
+ type=str,
+ required=False,
+ help="configures name of sfp1 interface")
def pytest_configure(config):
# register additional markers
diff --git a/host/tests/pytests/test_raw_udp_streaming.py b/host/tests/pytests/test_raw_udp_streaming.py
index 9198afa64..e9619be10 100644
--- a/host/tests/pytests/test_raw_udp_streaming.py
+++ b/host/tests/pytests/test_raw_udp_streaming.py
@@ -27,18 +27,18 @@ def parametrize_test_length(metafunc, test_length, fast_params, stress_params):
metafunc.parametrize(argnames, argvalues)
-def generate_x4xx_10GbE_test_cases(metafunc, test_length):
+def generate_x410_10GbE_test_cases(metafunc, test_length, sfp_int0, sfp_int1):
test_cases = [
# Test Lengths dual_SFP rate rx_rate rx_channels dest_addr dest_port adapter host_interface keep_hdr test case ID
# --------------------------------------------------------------------------------------------------------------------------------------------------------
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "0", "192.168.110.1", 1234, "sfp0", "enp1s0f0", True, id="SFP0_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "1", "192.168.110.1", 1234, "sfp0", "enp1s0f0", False, id="SFP0_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
- [{}, pytest.param(False, 245.76e6, 122.88e6, "2", "192.168.110.1", 1234, "sfp0", "enp1s0f0", True, id="SFP0_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
- [{}, pytest.param(False, 245.76e6, 122.88e6, "3", "192.168.110.1", 1234, "sfp0", "enp1s0f0", False, id="SFP0_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "0", "192.168.111.1", 1234, "sfp0_1", "enp1s0f1", True, id="SFP0_1_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "1", "192.168.111.1", 1234, "sfp0_1", "enp1s0f1", False, id="SFP0_1_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
- [{}, pytest.param(False, 245.76e6, 122.88e6, "2", "192.168.111.1", 1234, "sfp0_1", "enp1s0f1", True, id="SFP0_1_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
- [{}, pytest.param(False, 245.76e6, 122.88e6, "3", "192.168.111.1", 1234, "sfp0_1", "enp1s0f1", False, id="SFP0_1_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "0", "192.168.110.1", 1234, "sfp0", sfp_int0, True, id="SFP0_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "1", "192.168.110.1", 1234, "sfp0", sfp_int0, False, id="SFP0_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
+ [{}, pytest.param(False, 245.76e6, 122.88e6, "2", "192.168.110.1", 1234, "sfp0", sfp_int0, True, id="SFP0_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
+ [{}, pytest.param(False, 245.76e6, 122.88e6, "3", "192.168.110.1", 1234, "sfp0", sfp_int0, False, id="SFP0_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "0", "192.168.111.1", 1234, "sfp0_1", sfp_int1, True, id="SFP0_1_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 245.76e6, 122.88e6, "1", "192.168.111.1", 1234, "sfp0_1", sfp_int1, False, id="SFP0_1_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
+ [{}, pytest.param(False, 245.76e6, 122.88e6, "2", "192.168.111.1", 1234, "sfp0_1", sfp_int1, True, id="SFP0_1_FULL_PACKET_1x10GbE-1xRX@122.88e6")],
+ [{}, pytest.param(False, 245.76e6, 122.88e6, "3", "192.168.111.1", 1234, "sfp0_1", sfp_int1, False, id="SFP0_1_RAW_PAYLOAD_1x10GbE-1xRX@122.88e6")],
]
argvalues = test_length_utils.select_test_cases_by_length(test_length, test_cases)
@@ -48,29 +48,29 @@ def generate_x4xx_10GbE_test_cases(metafunc, test_length):
stress_params = test_length_utils.test_length_params(iterations=2, duration=600)
parametrize_test_length(metafunc, test_length, fast_params, stress_params)
-def generate_x4xx_100GbE_test_cases(metafunc, test_length, dut_fpga):
+def generate_x410_100GbE_test_cases(metafunc, test_length, dut_fpga, sfp_int0, sfp_int1):
if dut_fpga.upper() == 'CG_400':
test_cases = [
- # Test Lengths dual_SFP rate rx_rate rx_channels dest_addr dest_port adapter host_interface keep_hdr test case ID
+ # Test Lengths dual_SFP rate rx_rate rx_channels dest_addr dest_port adapter host_interface keep_hdr test case ID
# --------------------------------------------------------------------------------------------------------------------------------------------------------
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "0", "192.168.110.1", 1234, "sfp0", "ens6f0", True, id="SFP0_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "1", "192.168.110.1", 1234, "sfp0", "ens6f0", False, id="SFP0_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
- [{}, pytest.param(False, 491.52e6, 491.52e6, "2", "192.168.110.1", 1234, "sfp0", "ens6f0", True, id="SFP0_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
- [{}, pytest.param(False, 491.52e6, 491.52e6, "3", "192.168.110.1", 1234, "sfp0", "ens6f0", False, id="SFP0_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "0", "192.168.120.1", 1234, "sfp1", "ens6f1", True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "1", "192.168.120.1", 1234, "sfp1", "ens6f1", False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
- [{}, pytest.param(False, 491.52e6, 491.52e6, "2", "192.168.120.1", 1234, "sfp1", "ens6f1", True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
- [{}, pytest.param(False, 491.52e6, 491.52e6, "3", "192.168.120.1", 1234, "sfp1", "ens6f1", False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "0", "192.168.110.1", 1234, "sfp0", sfp_int0, True, id="SFP0_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "1", "192.168.110.1", 1234, "sfp0", sfp_int0, False, id="SFP0_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
+ [{}, pytest.param(False, 491.52e6, 491.52e6, "2", "192.168.110.1", 1234, "sfp0", sfp_int0, True, id="SFP0_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
+ [{}, pytest.param(False, 491.52e6, 491.52e6, "3", "192.168.110.1", 1234, "sfp0", sfp_int0, False, id="SFP0_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "0", "192.168.120.1", 1234, "sfp1", sfp_int1, True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 491.52e6, 491.52e6, "1", "192.168.120.1", 1234, "sfp1", sfp_int1, False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
+ [{}, pytest.param(False, 491.52e6, 491.52e6, "2", "192.168.120.1", 1234, "sfp1", sfp_int1, True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@491.52e6")],
+ [{}, pytest.param(False, 491.52e6, 491.52e6, "3", "192.168.120.1", 1234, "sfp1", sfp_int1, False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@491.52e6")],
]
if dut_fpga.upper() == 'UC_200':
test_cases = [
- # Test Lengths dual_SFP rate rx_rate rx_channels dest_addr dest_port adapter host_interface keep_hdr test case ID
+ # Test Lengths dual_SFP rate rx_rate rx_channels dest_addr dest_port adapter host_interface keep_hdr test case ID
# --------------------------------------------------------------------------------------------------------------------------------------------------------
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 250e6, 250e6, "0", "192.168.120.1", 1234, "sfp1", "ens6f1", True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@250e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 250e6, 250e6, "1", "192.168.120.1", 1234, "sfp1", "ens6f1", False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@250e6")],
- [{}, pytest.param(False, 250e6, 250e6, "2", "192.168.120.1", 1234, "sfp1", "ens6f1", True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@250e6")],
- [{}, pytest.param(False, 250e6, 250e6, "3", "192.168.120.1", 1234, "sfp1", "ens6f1", False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@250e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 250e6, 250e6, "0", "192.168.120.1", 1234, "sfp1", sfp_int1, True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@250e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 250e6, 250e6, "1", "192.168.120.1", 1234, "sfp1", sfp_int1, False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@250e6")],
+ [{}, pytest.param(False, 250e6, 250e6, "2", "192.168.120.1", 1234, "sfp1", sfp_int1, True, id="SFP1_FULL_PACKET_1x100GbE-1xRX@250e6")],
+ [{}, pytest.param(False, 250e6, 250e6, "3", "192.168.120.1", 1234, "sfp1", sfp_int1, False, id="SFP1_RAW_PAYLOAD_1x100GbE-1xRX@250e6")],
]
argvalues = test_length_utils.select_test_cases_by_length(test_length, test_cases)
@@ -80,14 +80,14 @@ def generate_x4xx_100GbE_test_cases(metafunc, test_length, dut_fpga):
stress_params = test_length_utils.test_length_params(iterations=2, duration=600)
parametrize_test_length(metafunc, test_length, fast_params, stress_params)
-def generate_X310_10GbE_test_cases(metafunc, test_length):
+def generate_X310_10GbE_test_cases(metafunc, test_length, sfp_int0, sfp_int1):
test_cases = [
# Test Lengths dual_SFP rate rx_rate rx_channels dest_addr dest_port adapter host_interface keep_hdr test case ID
# --------------------------------------------------------------------------------------------------------------------------------------------------------
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "0", "192.168.10.1", 1234, "sfp0", "ens4f0", True, id="SFP0_FULL_PACKET_1x10GbE-1xRX@200e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "1", "192.168.10.1", 1234, "sfp0", "ens4f0", False, id="SFP0_RAW_PAYLOAD_1x10GbE-1xRX@200e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "0", "192.168.20.1", 1234, "sfp1", "ens4f1", True, id="SFP1_FULL_PACKET_1x10GbE-1xRX@200e6")],
- [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "1", "192.168.20.1", 1234, "sfp1", "ens4f1", False, id="SFP1_RAW_PAYLOAD_1x10GbE-1xRX@200e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "0", "192.168.10.1", 1234, "sfp0", sfp_int0, True, id="SFP0_FULL_PACKET_1x10GbE-1xRX@200e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "1", "192.168.10.1", 1234, "sfp0", sfp_int0, False, id="SFP0_RAW_PAYLOAD_1x10GbE-1xRX@200e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "0", "192.168.20.1", 1234, "sfp1", sfp_int1, True, id="SFP1_FULL_PACKET_1x10GbE-1xRX@200e6")],
+ [{Test_Length_Stress, Test_Length_Smoke}, pytest.param(False, 200e6, 200e6, "1", "192.168.20.1", 1234, "sfp1", sfp_int1, False, id="SFP1_RAW_PAYLOAD_1x10GbE-1xRX@200e6")],
]
argvalues = test_length_utils.select_test_cases_by_length(test_length, test_cases)
@@ -101,15 +101,17 @@ def pytest_generate_tests(metafunc):
dut_type = metafunc.config.getoption("dut_type")
dut_fpga = metafunc.config.getoption("dut_fpga")
test_length = metafunc.config.getoption("test_length")
+ sfp_int0 = metafunc.config.getoption("sfp_int0")
+ sfp_int1 = metafunc.config.getoption("sfp_int1")
metafunc.parametrize("dut_type", [dut_type])
- if dut_type.lower() == 'x4xx' and dut_fpga.upper() == 'X4_200':
- generate_x4xx_10GbE_test_cases(metafunc, test_length)
- if dut_type.lower() == 'x4xx' and dut_fpga.upper() in {'CG_400', 'UC_200'}:
- generate_x4xx_100GbE_test_cases(metafunc, test_length, dut_fpga)
+ if dut_type.lower() == 'x410' and dut_fpga.upper() == 'X4_200':
+ generate_x410_10GbE_test_cases(metafunc, test_length, sfp_int0, sfp_int1)
+ if dut_type.lower() == 'x410' and dut_fpga.upper() in {'CG_400', 'UC_200'}:
+ generate_x410_100GbE_test_cases(metafunc, test_length, dut_fpga, sfp_int0, sfp_int1)
if dut_type.lower() == 'x310' and dut_fpga.upper() == 'XG':
- generate_X310_10GbE_test_cases(metafunc, test_length)
+ generate_X310_10GbE_test_cases(metafunc, test_length, sfp_int0, sfp_int1)
def test_raw_udp_streaming(pytestconfig, dut_type, dual_SFP, rate, rx_rate, rx_channels,
@@ -120,7 +122,7 @@ def test_raw_udp_streaming(pytestconfig, dut_type, dual_SFP, rate, rx_rate, rx_c
device_args = ""
# construct device args string
- if dut_type.lower() in ['n310', 'n320', 'e320', 'x4xx', 'x310']:
+ if dut_type.lower() in ['n310', 'n320', 'e320', 'x310', 'x410']:
device_args += f"master_clock_rate={rate},"
addr = pytestconfig.getoption('addr')
diff --git a/host/tests/pytests/test_streaming.py b/host/tests/pytests/test_streaming.py
index f8725663c..5f06945f8 100644
--- a/host/tests/pytests/test_streaming.py
+++ b/host/tests/pytests/test_streaming.py
@@ -156,7 +156,7 @@ def generate_X310_TwinRx_test_cases(metafunc, test_length):
stress_params = test_length_utils.test_length_params(iterations=2, duration=600)
parametrize_test_length(metafunc, test_length, fast_params, stress_params)
-def generate_x4xx_test_cases(metafunc, test_length, dut_fpga):
+def generate_x410_test_cases(metafunc, test_length, dut_fpga):
if dut_fpga.upper() == 'CG_400':
test_cases = [
# Test Lengths dual_SFP rate rx_rate rx_channels tx_rate tx_channels test case ID
@@ -193,7 +193,6 @@ def generate_x4xx_test_cases(metafunc, test_length, dut_fpga):
stress_params = test_length_utils.test_length_params(iterations=2, duration=600)
parametrize_test_length(metafunc, test_length, fast_params, stress_params)
-
def pytest_generate_tests(metafunc):
dut_type = metafunc.config.getoption("dut_type")
dut_fpga = metafunc.config.getoption("dut_fpga")
@@ -226,8 +225,8 @@ def pytest_generate_tests(metafunc):
generate_X310_test_cases(metafunc, test_length)
elif dut_type.lower() == 'x310_twinrx':
generate_X310_TwinRx_test_cases(metafunc, test_length)
- elif dut_type.lower() == 'x4xx':
- generate_x4xx_test_cases(metafunc, test_length, dut_fpga)
+ elif dut_type.lower() == 'x410':
+ generate_x410_test_cases(metafunc, test_length, dut_fpga)
def test_streaming(pytestconfig, dut_type, use_dpdk, dual_SFP, rate, rx_rate, rx_channels,
@@ -291,7 +290,7 @@ def test_streaming(pytestconfig, dut_type, use_dpdk, dual_SFP, rate, rx_rate, rx
# Run X410 streaming tests in multi_streamer mode and high thread priority
# since those settings allow for best performance.
- if dut_type.lower() == "x4xx":
+ if dut_type.lower() == "x410":
benchmark_rate_params["multi_streamer"] = 1
benchmark_rate_params["priority"] = "high"
dut_fpga = pytestconfig.getoption('dut_fpga')