Ejemplo n.º 1
0
int main ()
{
	testResult_t *result = initializeTestResult();

	fileSystem_t *FS = getFS();

	FS->superBlock->blockBitmap[0] = 0b11111111;
	FS->superBlock->blockBitmap[1] = 0b11111111;
	FS->superBlock->blockBitmap[2] = 0b00001101;
	
	assert(findEmptyBlock() == 17, "empty block find test.", result);

	assert(FS->activeDir->entryCount == 0, "add entry test begin", result);

	activeFile_t * aF = openFileInternal(FS->activeDir, "TestFile");

	assert(FS->activeDir->entryCount == 1, "add entry test begin", result);

	directoryEntry_t dE = FS->activeDir->entries[0];
	fprintf(stdout, "%s, %d, %d\n", dE.name, dE.blockType, dE.startingBlockNum);
	fprintf(stdout, "%s, %d\n", aF->name, aF->curContentsPtr);

	fileBlock_t *fB;
	fB = malloc(sizeof(fileBlock_t));
	readBlockFromDisk(17, fB);
	fprintf(stdout, "%d\n", fB->blockType);

	assert(fB->blockType == 3, "read blockType", result);

	fprintf(stdout, "%s\n", fB->name);

	assert(findEmptyBlock() == 20, "bitmap affect test.", result);

	markBlockFree(17);
	assert(findEmptyBlock() == 17, "bitmap affect test.", result);
	memset(fB, 0, sizeof(fileBlock_t));
	readBlockFromDisk(17, fB);
	fprintf(stdout, "%d\n", fB->blockType);

	assert(fB->blockType == 0, "free block zero set test.", result);

	printTestResult(result);
	freeTestResult(result);
	return 0;
}
Ejemplo n.º 2
0
/* Takes an unsolved sudoku matrix and sovles it */
int solvePuzzle(int twoDimArray[][9], int row, int col)
{
    int num;

    /* Check if an empty block exits */
    if(findEmptyBlock(twoDimArray,row,col)) return 1;

    /* not start checking digits 1 - can be placed */
    for(num = 1; num <=9; num++)
    {
        if (safe(twoDimArray,row,col,num))
        {
            twoDimArray[row][col] = num;

            if (solvePuzzle(twoDimArray,row,col)) return 1;
            /* reassing and try again */
            else twoDimArray[row][col] = EMPTY;
        }
    }


}