void testMetaSequence_serialisation(CuTest* testCase) { cactusMetaSequenceTestSetup(); int64_t i; Name name = metaSequence_getName(metaSequence); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) == metaSequence); void *vA = binaryRepresentation_makeBinaryRepresentation(metaSequence, (void (*)(void *, void (*)(const void *, size_t, size_t)))metaSequence_writeBinaryRepresentation, &i); CuAssertTrue(testCase, i > 0); metaSequence_destruct(metaSequence); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) == NULL); void *vA2 = vA; metaSequence = metaSequence_loadFromBinaryRepresentation(&vA2, cactusDisk); CuAssertTrue(testCase, name == metaSequence_getName(metaSequence)); CuAssertStrEquals(testCase, headerString, metaSequence_getHeader(metaSequence)); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) == metaSequence); cactusDisk_write(cactusDisk); metaSequence_destruct(metaSequence); CuAssertTrue(testCase, cactusDisk_getMetaSequence(cactusDisk, name) != NULL); metaSequence = cactusDisk_getMetaSequence(cactusDisk, name); nestedTest = 1; testMetaSequence_getName(testCase); testMetaSequence_getStart(testCase); testMetaSequence_getLength(testCase); testMetaSequence_getEventName(testCase); testMetaSequence_getString(testCase); testMetaSequence_getHeader(testCase); testMetaSequence_isTrivialSequence(testCase); nestedTest = 0; cactusMetaSequenceTestTeardown(); }
void testMetaSequence_isTrivialSequence(CuTest* testCase) { cactusMetaSequenceTestSetup(); CuAssertTrue(testCase, !metaSequence_isTrivialSequence(metaSequence)); MetaSequence *metaSequence2 = metaSequence_construct3(1, 10, sequenceString, headerString, eventName, 1, cactusDisk); CuAssertTrue(testCase, metaSequence_isTrivialSequence(metaSequence2)); metaSequence_destruct(metaSequence2); cactusMetaSequenceTestTeardown(); }
void cactusDisk_destruct(CactusDisk *cactusDisk) { Flower *flower; MetaSequence *metaSequence; while ((flower = stSortedSet_getFirst(cactusDisk->flowers)) != NULL) { flower_destruct(flower, FALSE); } stSortedSet_destruct(cactusDisk->flowers); stSortedSet_destruct(cactusDisk->flowerNamesMarkedForDeletion); while ((metaSequence = stSortedSet_getFirst(cactusDisk->metaSequences)) != NULL) { metaSequence_destruct(metaSequence); } stSortedSet_destruct(cactusDisk->metaSequences); //close DB stKVDatabase_destruct(cactusDisk->database); //Close the sequences files. if (cactusDisk->storeSequencesInAFile) { free(cactusDisk->sequencesFileName); free(cactusDisk->absSequencesFileName); if (cactusDisk->sequencesReadFileHandle != NULL) { fclose(cactusDisk->sequencesReadFileHandle); } if (cactusDisk->sequencesWriteFileHandle != NULL) { fsync(fileno(cactusDisk->sequencesWriteFileHandle)); fclose(cactusDisk->sequencesWriteFileHandle); } } else { assert(cactusDisk->sequencesFileName == NULL); assert(cactusDisk->sequencesReadFileHandle == NULL); assert(cactusDisk->absSequencesFileName == NULL); } stCache_destruct(cactusDisk->cache); //Get rid of the cache stCache_destruct(cactusDisk->stringCache); stList_destruct(cactusDisk->updateRequests); free(cactusDisk); }