Blame tests/ignored_problems.at

Packit 8ea169
# -*- Autotest -*-
Packit 8ea169
Packit 8ea169
AT_BANNER([ignored problems])
Packit 8ea169
Packit 8ea169
AT_TESTFUN([ignored_problems_all],
Packit 8ea169
[[
Packit 8ea169
#include "libabrt.h"
Packit 8ea169
#include "problem_data.h"
Packit 8ea169
#include <assert.h>
Packit 8ea169
Packit 8ea169
#define SET_PATH "/tmp/ignored_problems_test"
Packit 8ea169
Packit 8ea169
#define ALL_CORRECT_SET "../../ignored_problems_data/ignored_problems_all_correct"
Packit 8ea169
#define MISSING_DUPHAS_SET "../../ignored_problems_data/ignored_missing_duphash"
Packit 8ea169
#define MISSING_UUID_AND_DUPHASH_SET "../../ignored_problems_data/ignored_missing_uuid_and_duphash"
Packit 8ea169
Packit 8ea169
#define FIRST_DD_ID "../../ignored_problems_data/first"
Packit 8ea169
#define SECOND_DD_ID "../../ignored_problems_data/second"
Packit 8ea169
#define THIRD_DD_ID "../../ignored_problems_data/third"
Packit 8ea169
#define SAME_UUID_AS_THIRD_DD_ID "../../ignored_problems_data/same_uuid_as_third"
Packit 8ea169
#define SAME_DUPHASH_AS_THIRD_DD_ID "../../ignored_problems_data/same_duphash_as_third"
Packit 8ea169
#define MISSING_UUID_THIRD_DD_ID "../../ignored_problems_data/missing_uuid_third"
Packit 8ea169
#define MISSING_DUPHASH_THIRD_DD_ID "../../ignored_problems_data/missing_duphash_third"
Packit 8ea169
Packit 8ea169
int main(void)
Packit 8ea169
{
Packit 8ea169
    {
Packit 8ea169
        unlink(SET_PATH);
Packit 8ea169
        ignored_problems_t *set = ignored_problems_new(xstrdup(SET_PATH));
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, "foo_blah");
Packit 8ea169
        assert(0 == ignored_problems_contains(set, "foo_blah") || "The set contains invalid problem");
Packit 8ea169
        ignored_problems_remove(set, "foo_blah");
Packit 8ea169
Packit 8ea169
        assert(0 == ignored_problems_contains(set, FIRST_DD_ID) || !"The set contains a problem and it wasn't added");
Packit 8ea169
        ignored_problems_remove(set, FIRST_DD_ID);
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, FIRST_DD_ID);
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set contains just added problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, FIRST_DD_ID);
Packit 8ea169
        ignored_problems_add(set, FIRST_DD_ID);
Packit 8ea169
Packit 8ea169
        ignored_problems_remove(set, FIRST_DD_ID);
Packit 8ea169
        assert(0 == ignored_problems_contains(set, FIRST_DD_ID) || !"The set contains just removed problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_remove(set, FIRST_DD_ID);
Packit 8ea169
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
        unlink(SET_PATH);
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
    {
Packit 8ea169
        unlink(SET_PATH);
Packit 8ea169
        ignored_problems_t *set = ignored_problems_new(xstrdup(SET_PATH));
Packit 8ea169
Packit 8ea169
        struct dump_dir *dd = dd_opendir(FIRST_DD_ID, DD_OPEN_READONLY | DD_DONT_WAIT_FOR_LOCK);
Packit 8ea169
        assert(NULL != dd || !"Failed to load testing directory");
Packit 8ea169
Packit 8ea169
        problem_data_t *pd = create_problem_data_from_dump_dir(dd);
Packit 8ea169
        dd_close(dd);
Packit 8ea169
        problem_data_add_text_noteditable(pd, CD_DUMPDIR, FIRST_DD_ID);
Packit 8ea169
Packit 8ea169
        assert(0 == ignored_problems_contains_problem_data(set, pd) || !"The set contains a problem and it wasn't added");
Packit 8ea169
        ignored_problems_remove_problem_data(set, pd);
Packit 8ea169
Packit 8ea169
        ignored_problems_add_problem_data(set, pd);
Packit 8ea169
        assert(0 != ignored_problems_contains_problem_data(set, pd) || !"Thes set contains just added problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_add_problem_data(set, pd);
Packit 8ea169
        ignored_problems_add_problem_data(set, pd);
Packit 8ea169
Packit 8ea169
        ignored_problems_remove_problem_data(set, pd);
Packit 8ea169
        assert(0 == ignored_problems_contains_problem_data(set, pd) || !"The set contains just removed problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_remove_problem_data(set, pd);
Packit 8ea169
Packit 8ea169
        problem_data_free(pd);
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
        unlink(SET_PATH);
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
Packit 8ea169
    {
Packit 8ea169
        ignored_problems_t *set = ignored_problems_new(xstrdup("/foo/blah"));
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, FIRST_DD_ID);
Packit 8ea169
        ignored_problems_remove(set, FIRST_DD_ID);
Packit 8ea169
        assert(0 == ignored_problems_contains(set, FIRST_DD_ID) || !"Invalid file contains a problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
    {
Packit 8ea169
        ignored_problems_t *set = ignored_problems_new(xstrdup(SET_PATH));
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, FIRST_DD_ID);
Packit 8ea169
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
Packit 8ea169
        set = ignored_problems_new(xstrdup(SET_PATH));
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
    {
Packit 8ea169
        ignored_problems_t *set = ignored_problems_new(xstrdup(SET_PATH));
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, FIRST_DD_ID);
Packit 8ea169
        ignored_problems_add(set, SECOND_DD_ID);
Packit 8ea169
        ignored_problems_add(set, THIRD_DD_ID);
Packit 8ea169
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, SECOND_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
        set = ignored_problems_new(xstrdup(SET_PATH));
Packit 8ea169
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, SECOND_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_remove(set, SECOND_DD_ID);
Packit 8ea169
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
        assert(0 == ignored_problems_contains(set, SECOND_DD_ID) || !"Thes set contains removed problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
        set = ignored_problems_new(xstrdup(SET_PATH));
Packit 8ea169
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
        assert(0 == ignored_problems_contains(set, SECOND_DD_ID) || !"Thes set contains removed problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID) || !"Thes set doesn't contain saved problem");
Packit 8ea169
Packit 8ea169
        assert(0 != ignored_problems_contains(set, SAME_UUID_AS_THIRD_DD_ID) || !"Same uuid wasn't detected");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, SAME_DUPHASH_AS_THIRD_DD_ID) || !"Same duphash wasn't detected");
Packit 8ea169
Packit 8ea169
        assert(0 != ignored_problems_contains(set, MISSING_UUID_THIRD_DD_ID) || !"Not found with missing UUID");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, MISSING_DUPHASH_THIRD_DD_ID) || !"Not found with missing DUPHASH");
Packit 8ea169
Packit 8ea169
        ignored_problems_remove(set, SAME_UUID_AS_THIRD_DD_ID);
Packit 8ea169
        assert(0 == ignored_problems_contains(set, THIRD_DD_ID));
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, THIRD_DD_ID);
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID));
Packit 8ea169
        ignored_problems_remove(set, SAME_DUPHASH_AS_THIRD_DD_ID);
Packit 8ea169
        assert(0 == ignored_problems_contains(set, THIRD_DD_ID));
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, THIRD_DD_ID);
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID));
Packit 8ea169
        ignored_problems_remove(set, MISSING_UUID_THIRD_DD_ID);
Packit 8ea169
        assert(0 == ignored_problems_contains(set, THIRD_DD_ID));
Packit 8ea169
Packit 8ea169
        ignored_problems_add(set, THIRD_DD_ID);
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID));
Packit 8ea169
        ignored_problems_remove(set, MISSING_DUPHASH_THIRD_DD_ID);
Packit 8ea169
        assert(0 == ignored_problems_contains(set, THIRD_DD_ID));
Packit 8ea169
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
        unlink(SET_PATH);
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
    {
Packit 8ea169
        ignored_problems_t *set = ignored_problems_new(xstrdup(ALL_CORRECT_SET));
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, SECOND_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
Packit 8ea169
        set = ignored_problems_new(xstrdup(MISSING_DUPHAS_SET));
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, SECOND_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
Packit 8ea169
        set = ignored_problems_new(xstrdup(MISSING_UUID_AND_DUPHASH_SET));
Packit 8ea169
        assert(0 != ignored_problems_contains(set, FIRST_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, SECOND_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        assert(0 != ignored_problems_contains(set, THIRD_DD_ID) || !"Thes set doesn't contain added problem");
Packit 8ea169
        ignored_problems_free(set);
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
    return 0;
Packit 8ea169
}
Packit 8ea169
]])