X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Ffs%2Fbattfs_test.c;h=642e6d6423b179c60ee777f76a53c27cbc50b279;hb=a5d199ea6aed560d3b62c41b73d16d500ba51b99;hp=1e6d844c9bbda22109cc1df3945e39dd896c3441;hpb=f7d8da5a4b5c03b208309c2f0fb1c164f6478235;p=bertos.git diff --git a/bertos/fs/battfs_test.c b/bertos/fs/battfs_test.c index 1e6d844c..642e6d64 100644 --- a/bertos/fs/battfs_test.c +++ b/bertos/fs/battfs_test.c @@ -167,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) @@ -1051,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; @@ -1074,6 +1127,7 @@ int battfs_testRun(void) writeEOF(&disk); endOfSpace(&disk); multipleFilesRW(&disk); + openAllFiles(&disk); kprintf("All tests passed!\n"); @@ -1090,12 +1144,6 @@ int battfs_testTearDown(void) return 0; } -TEST_MAIN(battfs) - -#include -#include -#include -#include -#include +TEST_MAIN(battfs); #endif // _TEST