Blame tests/xorg-utils.at

Packit 8ea169
# -*- Autotest -*-
Packit 8ea169
Packit 8ea169
AT_BANNER([xorg utils lib])
Packit 8ea169
Packit 8ea169
AT_TESTCFUN([xorg_utils_skip_pfx],
Packit 8ea169
        [$XORG_UTILS_CFLAGS],
Packit 8ea169
        [$XORG_UTILS_LDFLAGS],
Packit 8ea169
[[
Packit 8ea169
#include "libabrt.h"
Packit 8ea169
#include "xorg-utils.h"
Packit 8ea169
Packit 8ea169
int main(void)
Packit 8ea169
{
Packit 8ea169
    const char *str[] = {
Packit 8ea169
        "[xxx xxx] (EE) Foo",
Packit 8ea169
        " (EE) Foo",
Packit 8ea169
        "(EE) Foo",
Packit 8ea169
        " Foo",
Packit 8ea169
        "Foo",
Packit 8ea169
        NULL
Packit 8ea169
    };
Packit 8ea169
Packit 8ea169
    for (int i = 0; str[i] != NULL; ++i)
Packit 8ea169
    {
Packit 8ea169
        char *result = skip_pfx((char *)str[i]);
Packit 8ea169
        if (strcmp(result, "Foo") != 0)
Packit 8ea169
        {
Packit 8ea169
            printf("Error: expected: 'Foo' got: '%s'\n", result);
Packit 8ea169
            return 1;
Packit 8ea169
        }
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
    return 0;
Packit 8ea169
}
Packit 8ea169
]])
Packit 8ea169
Packit 8ea169
AT_TESTCFUN([xorg_crash_info_save_in_dump_dir],
Packit 8ea169
        [$XORG_UTILS_CFLAGS],
Packit 8ea169
        [$XORG_UTILS_LDFLAGS],
Packit 8ea169
[[
Packit 8ea169
#include "libabrt.h"
Packit 8ea169
#include "xorg-utils.h"
Packit 8ea169
Packit 8ea169
void test(const char *backtrace, const char *exp_backtrace,
Packit 8ea169
          const char *reason, const char *exp_reason,
Packit 8ea169
          const char *exe, const char *exp_exe)
Packit 8ea169
{
Packit 8ea169
    char template[] = "/tmp/XXXXXX/dump_dir";
Packit 8ea169
Packit 8ea169
    char *last_slash = strrchr(template, '/');
Packit 8ea169
    *last_slash = '\0';
Packit 8ea169
Packit 8ea169
    if (mkdtemp(template) == NULL) {
Packit 8ea169
        perror("mkdtemp()");
Packit 8ea169
        return EXIT_FAILURE;
Packit 8ea169
    }
Packit 8ea169
Packit 8ea169
    *last_slash = '/';
Packit 8ea169
Packit 8ea169
    struct dump_dir *dd = dd_create(template, (uid_t)-1, 0640);
Packit 8ea169
Packit 8ea169
    dd_create_basic_files(dd, (uid_t)-1, NULL);
Packit 8ea169
Packit 8ea169
    struct xorg_crash_info *crash_info = xmalloc(sizeof(struct xorg_crash_info));
Packit 8ea169
    crash_info->backtrace = xstrdup(backtrace);
Packit 8ea169
    crash_info->reason = xstrdup(reason);
Packit 8ea169
    crash_info->exe = xstrdup(exe);
Packit 8ea169
Packit 8ea169
    xorg_crash_info_save_in_dump_dir(crash_info, dd);
Packit 8ea169
Packit 8ea169
    dd_close(dd);
Packit 8ea169
    dd = NULL;
Packit 8ea169
Packit 8ea169
    dd = dd_opendir(template, 0);
Packit 8ea169
    assert(dd != NULL);
Packit 8ea169
    assert(strcmp(dd->dd_dirname, template) == 0);
Packit 8ea169
Packit 8ea169
    problem_data_t *pd = create_problem_data_from_dump_dir(dd);
Packit 8ea169
Packit 8ea169
    assert(strcmp(problem_data_get_content_or_NULL(pd, FILENAME_ANALYZER), "abrt-xorg") == 0);
Packit 8ea169
    assert(strcmp(problem_data_get_content_or_NULL(pd, FILENAME_TYPE), "xorg") == 0);
Packit 8ea169
    assert(strcmp(problem_data_get_content_or_NULL(pd, FILENAME_REASON), exp_reason) == 0);
Packit 8ea169
    assert(strcmp(problem_data_get_content_or_NULL(pd, FILENAME_BACKTRACE), exp_backtrace) == 0);
Packit 8ea169
    assert(strncmp(problem_data_get_content_or_NULL(pd, FILENAME_EXECUTABLE), exp_exe, strlen(exp_exe)) == 0);
Packit 8ea169
Packit 8ea169
    problem_data_free(pd);
Packit 8ea169
    xorg_crash_info_free(crash_info);
Packit 8ea169
Packit 8ea169
    dd_delete(dd);
Packit 8ea169
Packit 8ea169
    struct stat dd_st;
Packit 8ea169
    assert(stat(template, &dd_st) != 0);
Packit 8ea169
Packit 8ea169
    *last_slash = '\0';
Packit 8ea169
    assert(rmdir(template) == 0);
Packit 8ea169
}
Packit 8ea169
Packit 8ea169
int main(void)
Packit 8ea169
{
Packit 8ea169
    g_verbose = 3;
Packit 8ea169
Packit 8ea169
    const char *b = "I am a backtrace";
Packit 8ea169
    const char *r = "Reason here!";
Packit 8ea169
    const char *e = "Executable here!";
Packit 8ea169
Packit 8ea169
    test(b, b, r, r, e, e);
Packit 8ea169
    test(b, b, r, r, NULL, "/usr/bin/X");
Packit 8ea169
Packit 8ea169
    return EXIT_SUCCESS;
Packit 8ea169
}
Packit 8ea169
]])
Packit 8ea169