kopia lustrzana https://github.com/espressif/esp-idf
72 wiersze
2.0 KiB
Python
72 wiersze
2.0 KiB
Python
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
|
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
import logging
|
|
|
|
import pytest
|
|
from pytest_embedded import Dut
|
|
|
|
MEM_TEST_UNICORE = {
|
|
'esp32s2': [
|
|
['IRAM0_SRAM', 'WRX'],
|
|
['IRAM0_RTCFAST', 'WRX'],
|
|
['DRAM0_SRAM', 'WR'],
|
|
['DRAM0_RTCFAST', 'WR'],
|
|
['PERI1_RTCSLOW', 'WR'],
|
|
['PERI2_RTCSLOW_0', 'WRX'],
|
|
['PERI2_RTCSLOW_1', 'WRX']
|
|
],
|
|
'esp32c3': [
|
|
['IRAM0_SRAM', 'WRX'],
|
|
['DRAM0_SRAM', 'WR'],
|
|
['IRAM0_RTCFAST', 'WRX']
|
|
],
|
|
'esp32s3': [
|
|
['IRAM0_SRAM (core 0)', 'WRX'],
|
|
['DRAM0_SRAM (core 0)', 'WR']
|
|
# temporarily disabled unless IDF-5208 gets merged
|
|
# ['IRAM0_RTCFAST', 'WR'],
|
|
],
|
|
}
|
|
|
|
MEM_TEST_MULTICORE = {
|
|
'esp32s3': [
|
|
# instruction execute test temporarily disabled
|
|
# ['IRAM0_SRAM (core 0)', 'WRX'],
|
|
['IRAM0_SRAM (core 0)', 'WR'],
|
|
['DRAM0_SRAM (core 0)', 'WR'],
|
|
# instruction execute test temporarily disabled
|
|
# ['IRAM0_SRAM (core 1)', 'WRX'],
|
|
['IRAM0_SRAM (core 1)', 'WR'],
|
|
['DRAM0_SRAM (core 1)', 'WR']
|
|
# temporarily disabled unless IDF-5208 gets merged
|
|
# ['IRAM0_RTCFAST', 'WR'],
|
|
]
|
|
}
|
|
|
|
|
|
@pytest.mark.esp32s2
|
|
@pytest.mark.esp32s3
|
|
@pytest.mark.esp32c3
|
|
@pytest.mark.generic
|
|
def test_sys_memprot(dut: Dut) -> None:
|
|
|
|
current_target = dut.target
|
|
|
|
unicore = dut.app.sdkconfig.get('FREERTOS_UNICORE')
|
|
|
|
mem_test_cfg = MEM_TEST_UNICORE if unicore else MEM_TEST_MULTICORE
|
|
|
|
logging.info(f'Test cfg: {current_target}')
|
|
|
|
for i in mem_test_cfg[current_target]:
|
|
if 'R' in i[1]:
|
|
dut.expect_exact(i[0] + ' read low: OK')
|
|
dut.expect_exact(i[0] + ' read high: OK')
|
|
if 'W' in i[1]:
|
|
dut.expect_exact(i[0] + ' write low: OK')
|
|
dut.expect_exact(i[0] + ' write high: OK')
|
|
if 'X' in i[1]:
|
|
dut.expect_exact(i[0] + ' exec low: OK')
|
|
dut.expect_exact(i[0] + ' exec high: OK')
|