Commit Graph

5 Commits

Author SHA1 Message Date
Alessandro Gatti
dbf59db5a1 tests/extmod/vfs_blockdev_invalid.py: Handle low memory conditions.
This commit modifies the "extmod/vfs_blockdev_invalid" test to better
behave on boards with low available memory.

Before these changes the test would fail on ESP8266 (at least), due to
low memory, but in a way that could not be easily solved as the error
occurred in the middle of the test.

The test has been rewritten to delay its output until the very end, so
if a low memory condition occurs and needs to stop execution then no
real output will show up before the skip marker.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2025-12-17 16:05:29 +11:00
Damien George
7681c68392 extmod/vfs_blockdev: Check return type is an integer.
This catches cases where the return type is not a small int, eg it could be
a string, or even a big integer.

Signed-off-by: Damien George <damien@micropython.org>
2025-10-01 11:14:39 +10:00
Damien George
0646177997 tests/extmod: Make invalid-blockdev test work consistently on all ports.
Some ports (eg stm32) configure the FAT driver differently (eg with
multi-partition support) and that leads to a slightly different sequence of
block reads, compared to other configurations (eg rp2).

Comment out the printing in `readblocks()` so the tests are deterministic
(the printing is still useful for debugging).

Signed-off-by: Damien George <damien@micropython.org>
2024-10-22 14:32:51 +11:00
Angus Gratton
f4ab9d9247 extmod/vfs_blockdev: Implement common helper for read and write.
- Code size saving as all of these functions are very similar.
- Resolves the "TODO" of the plain read and write functions not propagating
  errors. An error in the underlying block device now causes VFatFs to
  return EIO, for example.

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-09-26 22:08:48 +10:00
Angus Gratton
4f6d4b2b49 extmod/vfs_blockdev: Check block device function positive results.
A positive result here can result in eventual memory corruption
as littlefs expects the result of a cache read/write function to be
0 or a negative integer for an error.

Closes #13046

This work was funded through GitHub Sponsors.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-09-26 22:08:48 +10:00