Simulator_Test/pytest_dac_continuous.py

46 lines
2.2 KiB
Python
Raw Permalink Normal View History

# 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
def test_dac_continuous_output(dut: Dut, mode: str, chan0_io: str, chan1_io: str) -> None:
dut.expect('dac continuous: --------------------------------------------------', timeout=10)
dut.expect('dac continuous: DAC continuous output by {}'.format(mode), timeout=10)
dut.expect('dac continuous: DAC channel 0 io: GPIO_NUM_{}'.format(chan0_io), timeout=10)
dut.expect('dac continuous: DAC channel 1 io: GPIO_NUM_{}'.format(chan1_io), timeout=10)
dut.expect('dac continuous: Waveform: SINE -> TRIANGLE -> SAWTOOTH -> SQUARE', timeout=10)
dut.expect('dac continuous: DAC conversion frequency \\(Hz\\): ([0-9]+)', timeout=10)
dut.expect('dac continuous: DAC wave frequency \\(Hz\\): ([0-9]+)', timeout=10)
dut.expect('dac continuous: --------------------------------------------------', timeout=10)
dut.expect(r'DAC channel 0 value:( +)(\d+)(.*)DAC channel 1 value:( +)(\d+)', timeout=10)
dut.expect(r'dac continuous\({}\): triangle wave start'.format(mode), timeout=20)
dut.expect(r'dac continuous\({}\): sawtooth wave start'.format(mode), timeout=20)
dut.expect(r'dac continuous\({}\): square wave start'.format(mode), timeout=20)
dut.expect(r'dac continuous\({}\): sine wave start'.format(mode), timeout=20)
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
[
'dma',
'timer',
],
indirect=True,
)
@idf_parametrize('target', ['esp32', 'esp32s2'], indirect=['target'])
def test_dac_continuous_example_with_dma(dut: Dut) -> None:
sdkconfig = dut.app.sdkconfig
if dut.target == 'esp32':
if sdkconfig['EXAMPLE_DAC_CONTINUOUS_BY_DMA']:
test_dac_continuous_output(dut, 'DMA', '25', '26')
else:
test_dac_continuous_output(dut, 'timer', '25', '26')
elif dut.target == 'esp32s2':
if sdkconfig['EXAMPLE_DAC_CONTINUOUS_BY_DMA']:
test_dac_continuous_output(dut, 'DMA', '17', '18')
else:
test_dac_continuous_output(dut, 'timer', '17', '18')