pytest_gptimer_example.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. # SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
  2. # SPDX-License-Identifier: CC0-1.0
  3. import pytest
  4. from pytest_embedded import Dut
  5. @pytest.mark.supported_targets
  6. @pytest.mark.temp_skip_ci(targets=['esp32h2'], reason='test failed') # IDF-6846
  7. @pytest.mark.generic
  8. def test_gptimer_example(dut: Dut) -> None:
  9. dut.expect_exact('Create timer handle', timeout=5)
  10. dut.expect_exact('Start timer, stop it at alarm event', timeout=5)
  11. res = dut.expect(r'Timer stopped, count=(\d+)', timeout=30)
  12. stopped_count = res.group(1).decode('utf8')
  13. assert (1000000 - 20) < int(stopped_count) < (1000000 + 20)
  14. dut.expect_exact('Set count value')
  15. dut.expect_exact('Get count value')
  16. res = dut.expect(r'Timer count value=(\d+)', timeout=5)
  17. count_val = res.group(1).decode('utf8')
  18. assert int(count_val) == 100
  19. dut.expect_exact('Start timer, auto-reload at alarm event', timeout=5)
  20. res = dut.expect(r'Timer reloaded, count=(\d+)', timeout=5)
  21. reloaded_count = res.group(1).decode('utf8')
  22. assert 0 <= int(reloaded_count) < 10
  23. dut.expect_exact('Stop timer')
  24. dut.expect_exact('Start timer, update alarm value dynamically')
  25. for i in range(1,5):
  26. res = dut.expect(r'Timer alarmed, count=(\d+)', timeout=5)
  27. alarm_count = res.group(1).decode('utf8')
  28. assert (i * 1000000 - 10) < int(alarm_count) < (i * 1000000 + 10)
  29. dut.expect_exact('Stop timer')
  30. dut.expect_exact('Delete timer')