pytest_rtc_8md256.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. def deepsleep_test(dut: Dut, case_name: str) -> None:
  6. dut.expect_exact('Press ENTER to see the list of tests')
  7. dut.write(case_name)
  8. reset_reason = 'DEEPSLEEP_RESET' if dut.target == 'esp32' else 'DSLEEP'
  9. if dut.target == 'esp32c3':
  10. # Known issue: IDF-5003
  11. dut.expect(r'rst:.*\(%s\)' % reset_reason, timeout=40)
  12. elif dut.target == 'esp32c2':
  13. # Known issue: IDF-5003
  14. dut.expect(r'rst:.*\(%s\)' % reset_reason, timeout=60)
  15. else:
  16. dut.expect(r'rst:.*\(%s\)' % reset_reason, timeout=10)
  17. # IDF-5131
  18. @pytest.mark.esp32
  19. @pytest.mark.esp32s2
  20. @pytest.mark.esp32s3
  21. @pytest.mark.esp32c3
  22. @pytest.mark.generic
  23. def test_rtc_8md256_deepsleep(dut: Dut) -> None:
  24. deepsleep_test(dut, '"Can use 8MD256 as RTC clock source in deepsleep"')
  25. # Only targets with SOC_PM_SUPPORT_RTC_PERIPH_PD defined
  26. @pytest.mark.esp32
  27. @pytest.mark.esp32s2
  28. @pytest.mark.esp32s3
  29. @pytest.mark.generic
  30. def test_rtc_8md256_deepsleep_force_rtcperiph(dut: Dut) -> None:
  31. deepsleep_test(dut, '"Can use 8MD256 as RTC clock source in deepsleep (force rtc_periph)"')
  32. def lightsleep_test(dut: Dut, case_name: str) -> None:
  33. dut.expect_exact('Press ENTER to see the list of tests')
  34. dut.write(case_name)
  35. if dut.target == 'esp32c3':
  36. # Known issue: IDF-5003
  37. dut.expect(r'Returned from light sleep, reason: timer', timeout=40)
  38. else:
  39. dut.expect(r'Returned from light sleep, reason: timer', timeout=10)
  40. @pytest.mark.supported_targets
  41. @pytest.mark.generic
  42. def test_rtc_8md256_lightsleep(dut: Dut) -> None:
  43. lightsleep_test(dut, '"Can use 8MD256 as RTC clock source in lightsleep"')
  44. @pytest.mark.esp32
  45. @pytest.mark.esp32s2
  46. @pytest.mark.esp32s3
  47. @pytest.mark.generic
  48. def test_rtc_8md256_lightsleep_force_rtcperiph(dut: Dut) -> None:
  49. lightsleep_test(dut, '"Can use 8MD256 as RTC clock source in lightsleep (force rtc_periph)"')