diff --git a/.gitlab/ci/target-test.yml b/.gitlab/ci/target-test.yml index af3564e6a8..534992e861 100644 --- a/.gitlab/ci/target-test.yml +++ b/.gitlab/ci/target-test.yml @@ -175,6 +175,14 @@ example_test_pytest_esp32_wifi_wlan: - build_pytest_examples_esp32 tags: [ esp32, wifi_wlan ] +example_test_pytest_esp32_ethernet_ip101: + extends: + - .pytest_examples_dir_template + - .rules:test:example_test-esp32 + needs: + - build_pytest_examples_esp32 + tags: [ esp32, eth_ip101 ] + example_test_pytest_esp32_flash_encryption: extends: - .pytest_examples_dir_template @@ -300,6 +308,14 @@ component_ut_pytest_esp32_adc: - build_pytest_components_esp32 tags: [ esp32, adc ] +component_ut_pytest_esp32_ip101: + extends: + - .pytest_components_dir_template + - .rules:test:component_ut-esp32 + needs: + - build_pytest_components_esp32 + tags: [ esp32, eth_ip101 ] + component_ut_pytest_esp32_lan8720: extends: - .pytest_components_dir_template diff --git a/components/esp_eth/test_apps/pytest_esp_eth.py b/components/esp_eth/test_apps/pytest_esp_eth.py index 93a3724020..be069bfc09 100644 --- a/components/esp_eth/test_apps/pytest_esp_eth.py +++ b/components/esp_eth/test_apps/pytest_esp_eth.py @@ -24,6 +24,7 @@ class EthTestIntf(object): def find_target_if(self, my_if: str = '') -> None: # try to determine which interface to use netifs = os.listdir('/sys/class/net/') + # order matters - ETH NIC with the highest number is connected to DUT on CI runner netifs.sort(reverse=True) logging.info('detected interfaces: %s', str(netifs)) @@ -173,7 +174,7 @@ def actual_test(dut: Dut) -> None: @pytest.mark.esp32 -@pytest.mark.ip101 +@pytest.mark.eth_ip101 @pytest.mark.parametrize('config', [ 'ip101', ], indirect=True) diff --git a/examples/protocols/l2tap/pytest_example_l2tap_echo.py b/examples/protocols/l2tap/pytest_example_l2tap_echo.py index 7bbf205931..ca6a5e6c4d 100644 --- a/examples/protocols/l2tap/pytest_example_l2tap_echo.py +++ b/examples/protocols/l2tap/pytest_example_l2tap_echo.py @@ -22,6 +22,8 @@ def configure_eth_if(eth_type: int, target_if: str='') -> Iterator[socket.socket if target_if == '': # try to determine which interface to use netifs = os.listdir('/sys/class/net/') + # order matters - ETH NIC with the highest number is connected to DUT on CI runner + netifs.sort(reverse=True) logging.info('detected interfaces: %s', str(netifs)) for netif in netifs: if netif.find('eth') == 0 or netif.find('enx') == 0 or netif.find('enp') == 0 or netif.find('eno') == 0: @@ -100,7 +102,7 @@ def actual_test(dut: Dut) -> None: @pytest.mark.esp32 # internally tested using ESP32 with IP101 but may support all targets with SPI Ethernet -@pytest.mark.ip101 +@pytest.mark.eth_ip101 @pytest.mark.flaky(reruns=3, reruns_delay=5) def test_esp_netif_l2tap_example(dut: Dut) -> None: actual_test(dut) diff --git a/pytest.ini b/pytest.ini index 291ac10139..9b6594c97e 100644 --- a/pytest.ini +++ b/pytest.ini @@ -32,7 +32,7 @@ markers = generic: tests should be run on generic runners nightly_run: tests should be executed as part of the nightly trigger pipeline flash_suspend: support flash suspend feature - ip101: connected via wired 10/100M ethernet + eth_ip101: connected via wired 10/100M ethernet eth_lan8720: connected via LAN8720 ethernet transceiver quad_psram: runners with quad psram octal_psram: runners with octal psram