mirror of
https://github.com/espressif/esp-idf.git
synced 2025-12-26 13:12:21 +00:00
This prevents premature matching on partial data when the output is being streamed, which was causing the test to capture 100000 instead of the full 1000002.
37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
|
# SPDX-License-Identifier: CC0-1.0
|
|
import pytest
|
|
from pytest_embedded import Dut
|
|
from pytest_embedded_idf.utils import idf_parametrize
|
|
|
|
|
|
@pytest.mark.generic
|
|
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
|
def test_gptimer_example(dut: Dut) -> None:
|
|
dut.expect_exact('Create timer handle', timeout=5)
|
|
dut.expect_exact('Start timer, stop it at alarm event', timeout=5)
|
|
res = dut.expect(r'Timer stopped, count=(\d+)\D', timeout=30)
|
|
stopped_count = res.group(1).decode('utf8')
|
|
assert (1000000 - 20) < int(stopped_count) < (1000000 + 20)
|
|
|
|
dut.expect_exact('Set count value')
|
|
dut.expect_exact('Get count value')
|
|
res = dut.expect(r'Timer count value=(\d+)\D', timeout=5)
|
|
count_val = res.group(1).decode('utf8')
|
|
assert int(count_val) == 100
|
|
|
|
dut.expect_exact('Start timer, auto-reload at alarm event', timeout=5)
|
|
res = dut.expect(r'Timer reloaded, count=(\d+)\D', timeout=5)
|
|
reloaded_count = res.group(1).decode('utf8')
|
|
assert 0 <= int(reloaded_count) < 20
|
|
|
|
dut.expect_exact('Stop timer')
|
|
dut.expect_exact('Start timer, update alarm value dynamically')
|
|
for i in range(1, 5):
|
|
res = dut.expect(r'Timer alarmed, count=(\d+)\D', timeout=5)
|
|
alarm_count = res.group(1).decode('utf8')
|
|
assert (i * 1000000 - 20) < int(alarm_count) < (i * 1000000 + 20)
|
|
|
|
dut.expect_exact('Stop timer')
|
|
dut.expect_exact('Delete timer')
|