Add missing assert.
[bertos.git] / bertos / fs / battfs_test.c
index 1e6d844c9bbda22109cc1df3945e39dd896c3441..b8c235170e7ece1d02cb0379f9c1d9eb66036705 100644 (file)
@@ -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,61 @@ 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++)
+       {
+               kprintf("apertura %d\n", 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 +1130,7 @@ int battfs_testRun(void)
        writeEOF(&disk);
        endOfSpace(&disk);
        multipleFilesRW(&disk);
+       openAllFiles(&disk);
 
        kprintf("All tests passed!\n");