void testMount() { printf("testing tfs_mount\n"); printf("non-existant file\n"); REQUIRE_EQ(tfs_mount(FILE_NOT_EXISTS), TFS_EACCESS); printf("valid file\n"); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); tfs_unmount(); printf("valid file, then non-existant file\n"); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); REQUIRE_EQ(tfs_mount(FILE_NOT_EXISTS), TFS_EONEFS); tfs_unmount(); printf("valid file, then valid file\n"); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_EONEFS); tfs_unmount(); printf("invalid file\n"); REQUIRE_EQ(tfs_mount(FILE_INVALID), TFS_ENOTFS); printf("invalid file, then valid file\n"); REQUIRE_EQ(tfs_mount(FILE_INVALID), TFS_ENOTFS); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); tfs_unmount(); }
void wrapTest(void (*test)()) { REQUIRE_EQ(tfs_mkfs(DEFAULT_DISK_NAME, DEFAULT_DISK_SIZE), TFS_SUCCESS); REQUIRE_EQ(tfs_mount(DEFAULT_DISK_NAME), TFS_SUCCESS); test(); REQUIRE_EQ(tfs_unmount(), TFS_SUCCESS); }
int squash(Buffer * buf) { int num; for (num = 0; num < buf->nBufferBlocks; num++) { if (buf->pin[num] == 1) { unPinPage(buf, buf->pages[num].address); } if (buf->dirty[num] == 1) { flushPage(buf, buf->pages[num].address); } } free(buf->database); free(buf->pages); free(buf->cache); free(buf->buffer_timestamp); free(buf->cache_timestamp); free(buf->pin); free(buf->dirty); free(buf->volatileFDs); free(buf->persistentFDs); free(buf); return tfs_unmount(); }
int tfs_mount(char *filename) { int i, diskNum; if (disk_mount) tfs_unmount(); char buff[BLOCKSIZE]; diskNum = openDisk(filename, 0); if (diskNum < 0) return ERR_BADFS; readBlock(diskNum, 0, buff); if (buff[1] != 0x45) return ERR_BADFS; disk_mount = filename; if(DEBUG) printf("Mounted disk %s\n",disk_mount); close(diskNum); return 1; }
void testMountAndUnmount() { printf("testing tfs_mount and tfs_unmount\n"); printf("valid file, unmount, non-existant file, unmount\n"); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); REQUIRE_EQ(tfs_unmount(), TFS_SUCCESS); REQUIRE_EQ(tfs_mount(FILE_NOT_EXISTS), TFS_EACCESS); REQUIRE_EQ(tfs_unmount(), TFS_ENOFS); printf("valid file, unmount, invalid file, unmount\n"); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); REQUIRE_EQ(tfs_unmount(), TFS_SUCCESS); REQUIRE_EQ(tfs_mount(FILE_INVALID), TFS_ENOTFS); REQUIRE_EQ(tfs_unmount(), TFS_ENOFS); printf("valid file, unmount, valid file, unmount\n"); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); REQUIRE_EQ(tfs_unmount(), TFS_SUCCESS); REQUIRE_EQ(tfs_mount(FILE_VALID), TFS_SUCCESS); REQUIRE_EQ(tfs_unmount(), TFS_SUCCESS); }