1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

[FL-3664] 64k does not enough (#3216)

* Unit tests: add "exists" to furi_record tests
* Unit tests: mu_warn, storage 64k test
* Storage: read/write over 64k
* Unit tests: moar tests for storage r/w for >64k cases
* Apps, libs: replace uint16_t with size_t on storage r/w operations
* Unit tests: better data pattern, subghz: warning if transmission is prohibited

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Sergey Gavrilov
2023-11-15 19:39:27 +03:00
committed by GitHub
parent 98d5718ec9
commit 4b3e8aba29
25 changed files with 188 additions and 81 deletions

View File

@@ -134,31 +134,11 @@ static size_t file_stream_size(FileStream* stream) {
}
static size_t file_stream_write(FileStream* stream, const uint8_t* data, size_t size) {
// TODO FL-3545: cache
size_t need_to_write = size;
while(need_to_write > 0) {
uint16_t was_written =
storage_file_write(stream->file, data + (size - need_to_write), need_to_write);
need_to_write -= was_written;
if(was_written == 0) break;
}
return size - need_to_write;
return storage_file_write(stream->file, data, size);
}
static size_t file_stream_read(FileStream* stream, uint8_t* data, size_t size) {
// TODO FL-3545: cache
size_t need_to_read = size;
while(need_to_read > 0) {
uint16_t was_read =
storage_file_read(stream->file, data + (size - need_to_read), need_to_read);
need_to_read -= was_read;
if(was_read == 0) break;
}
return size - need_to_read;
return storage_file_read(stream->file, data, size);
}
static bool file_stream_delete_and_insert(