Files
esp-idf/examples/peripherals/timer_group/gptimer/pytest_gptimer_example.py
T

37 lines
1.5 KiB
Python
Raw Normal View History

2025-02-24 10:18:03 +08:00
# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
2022-01-02 16:17:44 +08:00
# SPDX-License-Identifier: CC0-1.0
import pytest
2022-01-20 17:39:30 +08:00
from pytest_embedded import Dut
2025-02-24 10:18:03 +08:00
from pytest_embedded_idf.utils import idf_parametrize
2022-01-02 16:17:44 +08:00
@pytest.mark.generic
2025-02-24 10:18:03 +08:00
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
2022-01-02 16:17:44 +08:00
def test_gptimer_example(dut: Dut) -> None:
2022-01-17 14:46:28 +08:00
dut.expect_exact('Create timer handle', timeout=5)
dut.expect_exact('Start timer, stop it at alarm event', timeout=5)
2022-01-02 16:17:44 +08:00
res = dut.expect(r'Timer stopped, count=(\d+)', timeout=30)
stopped_count = res.group(1).decode('utf8')
2022-09-14 13:42:11 +08:00
assert (1000000 - 20) < int(stopped_count) < (1000000 + 20)
2022-01-02 16:17:44 +08:00
2022-01-17 14:46:28 +08:00
dut.expect_exact('Set count value')
dut.expect_exact('Get count value')
2022-01-02 16:17:44 +08:00
res = dut.expect(r'Timer count value=(\d+)', timeout=5)
count_val = res.group(1).decode('utf8')
assert int(count_val) == 100
2022-01-17 14:46:28 +08:00
dut.expect_exact('Start timer, auto-reload at alarm event', timeout=5)
2022-01-02 16:17:44 +08:00
res = dut.expect(r'Timer reloaded, count=(\d+)', timeout=5)
reloaded_count = res.group(1).decode('utf8')
2023-06-21 15:24:42 +08:00
assert 0 <= int(reloaded_count) < 20
2022-01-02 16:17:44 +08:00
2022-01-17 14:46:28 +08:00
dut.expect_exact('Stop timer')
2022-04-23 18:59:38 +08:00
dut.expect_exact('Start timer, update alarm value dynamically')
2025-02-24 10:18:03 +08:00
for i in range(1, 5):
2022-01-02 16:17:44 +08:00
res = dut.expect(r'Timer alarmed, count=(\d+)', timeout=5)
alarm_count = res.group(1).decode('utf8')
2023-05-17 23:30:35 +08:00
assert (i * 1000000 - 20) < int(alarm_count) < (i * 1000000 + 20)
2022-01-02 16:17:44 +08:00
2022-01-17 14:46:28 +08:00
dut.expect_exact('Stop timer')
dut.expect_exact('Delete timer')