示例#1
0
mafFileApi_t* maf_newMfa(const char *filename, char const *mode) {
  mafFileApi_t *mfa = (mafFileApi_t *) de_malloc(sizeof(*mfa));
  mfa->lineNumber = 0;
  mfa->lastLine = NULL;
  mfa->mfp = de_fopen(filename, mode);
  mfa->filename = de_strdup(filename);
  return mfa;
}
static void test_readingFasta_0(CuTest *testCase) {
    char inputName[] = ">simChimp.chrA";
    char inputSequence[] = "ATAATACTTGCACACTTCTGCTATTACTTGATGTGTTTTCTATGGGGTGT"
        "CTTTCAGTGCTATGGGCAAGGCCATGGATTAATGGTGCCATAATTGCTCT"
        "AGGCAGTGACTAGAAACAGTTCACAAGTTTTTACTGTATCAAACTATGTT"
        "TTATAGTACGATTCACCCTCCAGGGGACCATCCCAAACTACTGGCCTAAA"
        "AGGACCTGCCATGTTGTAACTCCCCAGCTTAGAAATATAGACGGGAGGAA"
        "TGACaaaaagaagaaaaaaaaaaaaagaaaaaataaaaaaaaaacaaaaa"
        "agatagagaaaaaaaaaagtaaaaacaaaaaaaaataaaaaagggaaaaa"
        "aaataacaaaggaacaaaaaaaaaaaaaaaaaaataaaaagaaaaaCAAG"
        "ATAACCTTCATGCCATTGGAGCTATCTATTATTGTCTTGACCTATGCTTT"
        "ATCAATTTCTTCCTTCCTAGGAAGACATTTTTCTAGAAAGCTAAACGTTT"
        "TTGTAGGCTTGCATGTTCTGTCTGGGCTTGAATGGTTGTGCGTCTACAAG"
        "CCTCATTTACCATAGCACCATGCTTGGGTGGTATCTATCATCATTATCAA"
        "TAGTCAAGTCATTATAATGTTTTGGTGATCAGGCCAGATCCCTTGCACCA"
        "GTGACTTTCTAAATAGCACCTCCTCCATCATTTAAGGATCTCTAGCAACT"
        "TTAATCTGACTCACCTTGCCATGCAGAGTGCATGTTCCTTTTTAACACCC"
        "TGTGATTATGGGTTGGGTCTATTTGTATTTGTTTGATTACATCAGACGAC"
        "CAGGCCAGAGACAGATAAACACAACAGCCACTGGAACCTAAAGCTGTGTT"
        "CAGAATGTCACGGAATGTCTCATTGCACCCAGAGCTAGGGTGGGTATGAG"
        "TATGATCTTCTACATAAGGTACCCCAGGAAAATTAACTTAACAACCAATC"
        "AATTACAGAAGATGAATTCTGCTGTTGTCTCTTATTAGTTGGACTATTCA"
        "GCCTAATGGTTGGCCACTTAGCTTGTCATGAGCATTACTGTACTACTATG"
        "TCTAGTGTTTCCAGTTATTAGTTAGCCCACTGGATAGACAGTTTTGGCTT"
        "GTTTTCTTTCATTTGTATTGCCCACTCACCTAGCAAATCAGACAAAGGGG"
        "CATGTGAAAACTACCTTAGACTCTGCAGTTAGACAAACCATACTTTCCAC"
        "ATAGACCTCAGACATTTGGACATGAATAATTTCCTTCCTCCGGAGTGGTG"
        "GTTCCTCAACACTTATCACTTTCTTCTTCTTTTACCCGTATCACTGTCAA";
    FILE *ofp = de_fopen("testFasta.fa", "w");
    fprintf(ofp, "%s\n", inputName);
    for (size_t i = 0; i < strlen(inputSequence); ++i) {
        fprintf(ofp, "%c", inputSequence[i]);
        if (((i + 1) % 50) == 0) {
            fprintf(ofp, "\n");
        }
    }
    fprintf(ofp, "\n");
    fclose(ofp);
    stHash *sequenceHash = stHash_construct3(stHash_stringKey, stHash_stringEqualKey, free, destroyMtfseq);
    addSequencesToHash(sequenceHash, "testFasta.fa");
    mtfseq_t *value = NULL;
    CuAssertTrue(testCase, (value = stHash_search(sequenceHash, "not in there")) == NULL);
    CuAssertTrue(testCase, (value = stHash_search(sequenceHash, "simChimp.chrA")) != NULL);
    if (value != NULL) {
        CuAssertTrue(testCase, strlen(value->seq) == strlen(inputSequence));
        CuAssertTrue(testCase, strcmp(value->seq, inputSequence) == 0);
    }
    if (remove("testFasta.fa")) {
        fprintf(stderr, "Error, unable to remove temporary file testFasta.fa\n");
        exit(EXIT_FAILURE);
    }
    stHash_destruct(sequenceHash);
}
static de_file_ref_t prep_new_core_file(struct dump_s *s)
{
    char name[80];
    int i;
    de_file_ref_t file;

    for(i=1 ; i <= DE_COREDUMP_MAX_COUNT ; i++) 
    {
        DE_SNPRINTF(name, sizeof(name), CORE_FILE_NAME, i);
        file = de_fopen(name, DE_FRDONLY );
        if(de_f_is_open(file)) 
        {
            de_fclose(file);
        } 
        else
        { 
            s->nr = i;
            return de_fopen(name, DE_FCREATE|DE_FWRONLY|DE_FTRUNC);
        }
    }
    return NULL;
}