2024-12-31 12:11:37 +01:00
|
|
|
# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
2022-10-11 12:03:26 +08:00
|
|
|
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
|
import pytest
|
|
|
|
|
from pytest_embedded import Dut
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.esp32
|
|
|
|
|
@pytest.mark.esp32s2
|
|
|
|
|
@pytest.mark.esp32c3
|
|
|
|
|
@pytest.mark.generic
|
|
|
|
|
def test_esp_event(dut: Dut) -> None:
|
2023-02-01 12:12:57 +08:00
|
|
|
dut.run_all_single_board_cases()
|
2023-06-20 16:18:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.esp32
|
|
|
|
|
@pytest.mark.esp32c3
|
|
|
|
|
@pytest.mark.host_test
|
|
|
|
|
@pytest.mark.qemu
|
2023-12-20 12:01:44 +08:00
|
|
|
def test_esp_event_qemu(dut: Dut) -> None:
|
2023-06-20 16:18:45 +02:00
|
|
|
for case in dut.test_menu:
|
|
|
|
|
if 'qemu-ignore' not in case.groups and not case.is_ignored and case.type == 'normal':
|
|
|
|
|
dut._run_normal_case(case)
|
2023-07-19 19:18:11 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.linux
|
|
|
|
|
@pytest.mark.host_test
|
|
|
|
|
def test_esp_event_posix_simulator(dut: Dut) -> None:
|
|
|
|
|
dut.expect_exact('Press ENTER to see the list of tests.')
|
|
|
|
|
dut.write('*')
|
|
|
|
|
dut.expect(r'\d{2} Tests 0 Failures 0 Ignored', timeout=120)
|
2024-12-17 11:46:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.esp32
|
|
|
|
|
@pytest.mark.generic
|
|
|
|
|
def test_esp_event_profiling(dut: Dut) -> None:
|
|
|
|
|
dut.expect_exact('Press ENTER to see the list of tests.')
|
|
|
|
|
dut.write('"profiling reports valid values"')
|
|
|
|
|
# look for all references of handlers invoked at least 1 time
|
|
|
|
|
# with an execution time superior to 0 us
|
|
|
|
|
matches = dut.expect(r'HANDLER .+ inv:[1-9][0-9]{0,} time:[1-9][0-9]{0,} us', timeout=2)
|
|
|
|
|
matches_arr = matches.group().split(b'\r\n')
|
|
|
|
|
assert (len(matches_arr) == 3)
|
2024-12-31 12:11:37 +01:00
|
|
|
dut.expect('1 Tests 0 Failures 0 Ignored', timeout=120)
|
|
|
|
|
dut.expect_exact("Enter next test, or 'enter' to see menu")
|
|
|
|
|
|
|
|
|
|
dut.write('"esp_event_dump does not show self unregistered handler"')
|
|
|
|
|
# look for 1 handlers never invoked
|
|
|
|
|
matches = dut.expect(r'HANDLER .+ inv:0 time:0 us', timeout=2)
|
|
|
|
|
matches_arr = matches.group().split(b'\r\n')
|
|
|
|
|
assert (len(matches_arr) == 1)
|
|
|
|
|
dut.expect('1 Tests 0 Failures 0 Ignored', timeout=120)
|
|
|
|
|
dut.expect_exact("Enter next test, or 'enter' to see menu")
|
|
|
|
|
|
|
|
|
|
dut.write('"self unregistered handlers are never called again after they return"')
|
|
|
|
|
dut.expect('1 Tests 0 Failures 0 Ignored', timeout=120)
|