feat(esptool): Add tests for get_chip_features

This commit is contained in:
KonstantinKondrashov
2023-07-19 19:49:32 +08:00
parent b70ead2b7f
commit d5bb1ee6d9
2 changed files with 27 additions and 3 deletions

View File

@@ -120,10 +120,16 @@ class ESP32S2ROM(ESP32ROM):
num_word = 3
return (self.read_reg(self.EFUSE_BLOCK1_ADDR + (4 * num_word)) >> 21) & 0x0F
def get_flash_cap(self):
return self.get_flash_version()
def get_psram_version(self):
num_word = 3
return (self.read_reg(self.EFUSE_BLOCK1_ADDR + (4 * num_word)) >> 28) & 0x0F
def get_psram_cap(self):
return self.get_psram_version()
def get_block2_version(self):
# BLK_VERSION_MINOR
num_word = 4
@@ -137,7 +143,7 @@ class ESP32S2ROM(ESP32ROM):
102: "ESP32-S2FNR2",
100: "ESP32-S2R2",
}.get(
self.get_flash_version() + self.get_psram_version() * 100,
self.get_flash_cap() + self.get_psram_cap() * 100,
"unknown ESP32-S2",
)
major_rev = self.get_major_chip_version()
@@ -154,14 +160,14 @@ class ESP32S2ROM(ESP32ROM):
0: "No Embedded Flash",
1: "Embedded Flash 2MB",
2: "Embedded Flash 4MB",
}.get(self.get_flash_version(), "Unknown Embedded Flash")
}.get(self.get_flash_cap(), "Unknown Embedded Flash")
features += [flash_version]
psram_version = {
0: "No Embedded PSRAM",
1: "Embedded PSRAM 2MB",
2: "Embedded PSRAM 4MB",
}.get(self.get_psram_version(), "Unknown Embedded PSRAM")
}.get(self.get_psram_cap(), "Unknown Embedded PSRAM")
features += [psram_version]
block2_version = {

View File

@@ -24,6 +24,7 @@ import tempfile
import time
from socket import AF_INET, SOCK_STREAM, socket
from time import sleep
from unittest.mock import MagicMock
# Link command line options --port, --chip, --baud, --with-trace, and --preload-port
from conftest import (
@@ -1138,6 +1139,23 @@ class TestReadWriteMemory(EsptoolTestCase):
finally:
esp._port.close()
def test_read_get_chip_features(self):
try:
esp = esptool.get_default_connected_device(
[arg_port], arg_port, 10, 115200, arg_chip
)
if hasattr(esp, "get_flash_cap") and esp.get_flash_cap() == 0:
esp.get_flash_cap = MagicMock(return_value=1)
if hasattr(esp, "get_psram_cap") and esp.get_psram_cap() == 0:
esp.get_psram_cap = MagicMock(return_value=1)
features = ", ".join(esp.get_chip_features())
assert "Unknown Embedded Flash" not in features
assert "Unknown Embedded PSRAM" not in features
finally:
esp._port.close()
@pytest.mark.skipif(
arg_chip != "esp8266", reason="Make image option is supported only on ESP8266"