X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Ffs%2Fbattfs_test.c;h=642e6d6423b179c60ee777f76a53c27cbc50b279;hb=16f5f1e3b80a45b38fcd6d1751ab82606976fe2e;hp=9829eb715e79c8958a7a5db8d5ce10e9f23724d5;hpb=261d36f374752a14db225999494e5f6194356617;p=bertos.git diff --git a/bertos/fs/battfs_test.c b/bertos/fs/battfs_test.c index 9829eb71..642e6d64 100644 --- a/bertos/fs/battfs_test.c +++ b/bertos/fs/battfs_test.c @@ -118,7 +118,6 @@ static bool disk_close(struct BattFsSuper *d) static bool disk_open(struct BattFsSuper *d) { - d->page_size = PAGE_SIZE; d->read = disk_page_read; d->load = disk_page_load; d->bufferWrite = disk_buffer_write; @@ -168,8 +167,9 @@ static void testCheck(BattFsSuper *disk, pgcnt_t *reference) exit(2); } } + ASSERT(battfs_fsck(disk)); - battfs_umount(disk); + ASSERT(battfs_umount(disk)); } static void diskNew(BattFsSuper *disk) @@ -1052,6 +1052,58 @@ static void multipleFilesRW(BattFsSuper *disk) } +static void openAllFiles(BattFsSuper *disk) +{ + TRACEMSG("22: try to open a lot of files\n"); + + FILE *fpt = fopen(test_filename, "w+"); + + for (int i = 0; i < FILE_SIZE; i++) + fputc(0xff, fpt); + fclose(fpt); + + BattFs fd[BATTFS_MAX_FILES]; + unsigned int MODE = BATTFS_CREATE; + + ASSERT(disk_open(disk)); + ASSERT(battfs_mount(disk)); + ASSERT(battfs_fsck(disk)); + for (unsigned i = 0; i < countof(fd); i++) + ASSERT(battfs_fileopen(disk, &fd[i], i, MODE)); + + ASSERT(battfs_fsck(disk)); + + for (unsigned i = 0; i < countof(fd); i++) + { + ASSERT(kfile_close(&fd[i].fd) == 0); + ASSERT(kfile_error(&fd[i].fd) == 0); + } + + ASSERT(battfs_fsck(disk)); + ASSERT(battfs_umount(disk)); + + ASSERT(disk_open(disk)); + ASSERT(battfs_mount(disk)); + ASSERT(battfs_fsck(disk)); + + + for (unsigned i = 0; i < countof(fd); i++) + ASSERT(battfs_fileopen(disk, &fd[i], i, MODE)); + + ASSERT(battfs_fsck(disk)); + + for (unsigned i = 0; i < countof(fd); i++) + { + ASSERT(kfile_close(&fd[i].fd) == 0); + ASSERT(kfile_error(&fd[i].fd) == 0); + } + + ASSERT(battfs_fsck(disk)); + ASSERT(battfs_umount(disk)); + TRACEMSG("22: passed\n"); +} + + int battfs_testRun(void) { BattFsSuper disk; @@ -1075,6 +1127,7 @@ int battfs_testRun(void) writeEOF(&disk); endOfSpace(&disk); multipleFilesRW(&disk); + openAllFiles(&disk); kprintf("All tests passed!\n"); @@ -1091,12 +1144,6 @@ int battfs_testTearDown(void) return 0; } -TEST_MAIN(battfs) - -#include -#include -#include -#include -#include +TEST_MAIN(battfs); #endif // _TEST