|
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 |
|