diff --git a/eeprom/i2c/eep_i2c.py b/eeprom/i2c/eep_i2c.py index d05b31d..12a778f 100644 --- a/eeprom/i2c/eep_i2c.py +++ b/eeprom/i2c/eep_i2c.py @@ -64,6 +64,8 @@ def cp(source, dest): # ***** TEST OF DRIVER ***** def _testblock(eep, bs): + if bs >= len(eep): + bs = len(eep) // 2 d0 = b"this >" d1 = b" len(eep): + sa = (len(eep) - address_range) // 2 for v in range(256): eep[sa + v] = v for v in range(256): @@ -103,6 +108,8 @@ def test(eep=None): print("Test of byte addressing passed") data = uos.urandom(30) sa = 2000 + if sa + len(data) > len(eep): + sa = (len(eep) - len(data)) // 2 eep[sa : sa + 30] = data if eep[sa : sa + 30] == data: print("Test of slice readback passed") @@ -126,7 +133,8 @@ def test(eep=None): print("Test chip boundary skipped: only one chip!") pe = eep.get_page_size() + 1 # One byte past page eep[pe] = 0xFF - eep[:257] = b"\0" * 257 + write_length = min(257, len(eep)) + eep[:write_length] = b"\0" * write_length print("Test page size: ", end="") if eep[pe]: print("FAIL")