Skip to content

Commit 308dc54

Browse files
authored
Merge pull request peterhinch#24 from adeuring/master
Fix `eep_i2c.py` for testing with smaller EEPROMs.
2 parents 51f7a13 + 640af0f commit 308dc54

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

eeprom/i2c/eep_i2c.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ def cp(source, dest):
6464

6565
# ***** TEST OF DRIVER *****
6666
def _testblock(eep, bs):
67+
if bs >= len(eep):
68+
bs = len(eep) // 2
6769
d0 = b"this >"
6870
d1 = b"<is the boundary"
6971
d2 = d0 + d1
@@ -93,6 +95,9 @@ def _testblock(eep, bs):
9395
def test(eep=None):
9496
eep = eep if eep else get_eep()
9597
sa = 1000
98+
address_range = 256
99+
if sa + address_range > len(eep):
100+
sa = (len(eep) - address_range) // 2
96101
for v in range(256):
97102
eep[sa + v] = v
98103
for v in range(256):
@@ -103,6 +108,8 @@ def test(eep=None):
103108
print("Test of byte addressing passed")
104109
data = uos.urandom(30)
105110
sa = 2000
111+
if sa + len(data) > len(eep):
112+
sa = (len(eep) - len(data)) // 2
106113
eep[sa : sa + 30] = data
107114
if eep[sa : sa + 30] == data:
108115
print("Test of slice readback passed")
@@ -126,7 +133,8 @@ def test(eep=None):
126133
print("Test chip boundary skipped: only one chip!")
127134
pe = eep.get_page_size() + 1 # One byte past page
128135
eep[pe] = 0xFF
129-
eep[:257] = b"\0" * 257
136+
write_length = min(257, len(eep))
137+
eep[:write_length] = b"\0" * write_length
130138
print("Test page size: ", end="")
131139
if eep[pe]:
132140
print("FAIL")

0 commit comments

Comments
 (0)