pytest_gptimer.py 1.4 KB

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