|
Packit |
4f15d5 |
# -*- Autotest -*-
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
AT_BANNER([make_description])
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
## -------------- ##
|
|
Packit |
4f15d5 |
## flag_show_urls ##
|
|
Packit |
4f15d5 |
## -------------- ##
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
AT_TESTFUN([flag_show_urls],
|
|
Packit |
4f15d5 |
[[
|
|
Packit |
4f15d5 |
#include "internal_libreport.h"
|
|
Packit |
4f15d5 |
#include <assert.h>
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
int main(int argc, char **argv)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
g_verbose = 3;
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_t *pd = problem_data_new();
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
char *description = make_description(pd, /*skipped names*/NULL, CD_MAX_TEXT_SIZE, MAKEDESC_SHOW_URLS);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
assert(description != NULL || !"Returns NULL for empty problem data");
|
|
Packit |
4f15d5 |
assert(description[0] == '\0' || !"Returns non-empty description for empty problem data");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_add_text_noteditable(pd, FILENAME_REPORTED_TO, "Bugzilla: URL=https://bugzilla.redhat.com/1000000\n");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
description = make_description(pd, /*skipped names*/NULL, CD_MAX_TEXT_SIZE, MAKEDESC_SHOW_URLS);
|
|
Packit |
4f15d5 |
char *expected = xasprintf("%s: %*s%s\n",
|
|
Packit |
4f15d5 |
"Reported", 14 - strlen("Reported"), "", "https://bugzilla.redhat.com/1000000");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
if (strcmp(expected, description) != 0)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
printf("E:\n'%s'\n\nC:\n'%s'\n", expected, description);
|
|
Packit |
4f15d5 |
assert(!"The description for a single Bugzilla URL do not matches the expected description");
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
free(expected);
|
|
Packit |
4f15d5 |
problem_data_free(pd);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
pd = problem_data_new();
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_add_text_noteditable(pd,
|
|
Packit |
4f15d5 |
FILENAME_REPORTED_TO,
|
|
Packit |
4f15d5 |
"Bugzilla: URL=https://bugzilla.redhat.com/1000000\n"
|
|
Packit |
4f15d5 |
"ABRT Server: BTHASH=81680083BIGBOOBS\n"
|
|
Packit |
4f15d5 |
"RHTSupport: TIME=12345678 URL=https://access.redhat.com/home MSG=The world's best IT support\n"
|
|
Packit |
4f15d5 |
"ABRT Server: URL=https://bug-report.itos.redhat.com\n");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
description = make_description(pd, /*skipped names*/NULL, CD_MAX_TEXT_SIZE, MAKEDESC_SHOW_URLS);
|
|
Packit |
4f15d5 |
expected = xasprintf(
|
|
Packit |
4f15d5 |
/*0123456789ABCDEF*/
|
|
Packit |
4f15d5 |
"Reported: https://bugzilla.redhat.com/1000000\n"
|
|
Packit |
4f15d5 |
" https://access.redhat.com/home\n"
|
|
Packit |
4f15d5 |
" https://bug-report.itos.redhat.com\n");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
if (strcmp(expected, description) != 0)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
printf("E:\n'%s'\n\nC:\n'%s'\n", expected, description);
|
|
Packit |
4f15d5 |
assert(!"The description do not matches the expected description");
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
free(expected);
|
|
Packit |
4f15d5 |
problem_data_free(pd);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
pd = problem_data_new();
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_add_text_noteditable(pd, FILENAME_REPORTED_TO, "ABRT Server: BTHASH=81680083BIGBOOBS\n");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
description = make_description(pd, /*skipped names*/NULL, CD_MAX_TEXT_SIZE, MAKEDESC_SHOW_URLS);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
assert(description != NULL || !"Returns NULL for non empty problem data");
|
|
Packit |
4f15d5 |
assert(description[0] == '\0' || !"Returns non-empty description for problem data without any URL");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
problem_data_free(pd);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
pd = problem_data_new();
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
const int list_flags = CD_FLAG_TXT | CD_FLAG_ISNOTEDITABLE | CD_FLAG_LIST;
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_PACKAGE, "libreport", list_flags);
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_REASON, "will_segfault killed by SIGSEGV", list_flags);
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_COUNT, "0", list_flags);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_add_text_noteditable(pd,
|
|
Packit |
4f15d5 |
FILENAME_REPORTED_TO,
|
|
Packit |
4f15d5 |
"Bugzilla: URL=https://bugzilla.redhat.com/1000000\n"
|
|
Packit |
4f15d5 |
"ABRT Server: BTHASH=81680083BIGBOOBS\n"
|
|
Packit |
4f15d5 |
"RHTSupport: TIME=12345678 URL=https://access.redhat.com/home MSG=The world's best IT support\n"
|
|
Packit |
4f15d5 |
"ABRT Server: URL=https://bug-report.itos.redhat.com\n");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
description = make_description(pd, /*skipped names*/NULL, CD_MAX_TEXT_SIZE, MAKEDESC_SHOW_ONLY_LIST | MAKEDESC_SHOW_URLS);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
expected = xasprintf(
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
/*0123456789ABCDEF*/
|
|
Packit |
4f15d5 |
"Reported: https://bugzilla.redhat.com/1000000\n"
|
|
Packit |
4f15d5 |
" https://access.redhat.com/home\n"
|
|
Packit |
4f15d5 |
" https://bug-report.itos.redhat.com\n",
|
|
Packit |
4f15d5 |
FILENAME_REASON, 14 - strlen(FILENAME_REASON), "", "will_segfault killed by SIGSEGV",
|
|
Packit |
4f15d5 |
FILENAME_PACKAGE, 14 - strlen(FILENAME_PACKAGE), "", "libreport",
|
|
Packit |
4f15d5 |
FILENAME_COUNT, 14 - strlen(FILENAME_COUNT), "", "0");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
if (strcmp(expected, description) != 0)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
printf("E:\n'%s'\n\nC:\n'%s'\n", expected, description);
|
|
Packit |
4f15d5 |
assert(!"The description do not matches the expected description");
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(expected);
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
const char *const backtrace = "Extremely long backtrace which does not make sense";
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_BACKTRACE, backtrace, CD_FLAG_TXT | CD_FLAG_ISNOTEDITABLE);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
description = make_description(pd, /*skipped names*/NULL, strlen(backtrace) - 1, MAKEDESC_SHOW_FILES | MAKEDESC_SHOW_URLS);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
expected = xasprintf(
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
/*0123456789ABCDEF*/
|
|
Packit |
4f15d5 |
"Reported: https://bugzilla.redhat.com/1000000\n"
|
|
Packit |
4f15d5 |
" https://access.redhat.com/home\n"
|
|
Packit |
4f15d5 |
" https://bug-report.itos.redhat.com\n"
|
|
Packit |
4f15d5 |
"\n"
|
|
Packit |
4f15d5 |
"%s: %*sText file, %llu bytes\n"
|
|
Packit |
4f15d5 |
"%s: %*sText file, %llu bytes\n",
|
|
Packit |
4f15d5 |
FILENAME_REASON, 14 - strlen(FILENAME_REASON), "", "will_segfault killed by SIGSEGV",
|
|
Packit |
4f15d5 |
FILENAME_PACKAGE, 14 - strlen(FILENAME_PACKAGE), "", "libreport",
|
|
Packit |
4f15d5 |
FILENAME_COUNT, 14 - strlen(FILENAME_COUNT), "", "0",
|
|
Packit |
4f15d5 |
FILENAME_BACKTRACE, 14 - strlen(FILENAME_BACKTRACE), "", backtrace,
|
|
Packit |
4f15d5 |
FILENAME_BACKTRACE, 14 - strlen(FILENAME_BACKTRACE), "", (long long unsigned)strlen(backtrace),
|
|
Packit |
4f15d5 |
FILENAME_REPORTED_TO,14 - strlen(FILENAME_REPORTED_TO),"", (long long unsigned)strlen(problem_data_get_content_or_NULL(pd, FILENAME_REPORTED_TO))
|
|
Packit |
4f15d5 |
);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
if (strcmp(expected, description) != 0)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
printf("E:\n'%s'\n\nC:\n'%s'\n", expected, description);
|
|
Packit |
4f15d5 |
assert(!"The description do not matches the expected description");
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(expected);
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
problem_data_free(pd);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
/* SHOW_URLS DID NOT BREAK THE OLD BEHAVIOUR */
|
|
Packit |
4f15d5 |
pd = problem_data_new();
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_PACKAGE, "libreport", list_flags);
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_REASON, "will_segfault killed by SIGSEGV", list_flags);
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_COUNT, "0", list_flags);
|
|
Packit |
4f15d5 |
problem_data_add(pd, FILENAME_BACKTRACE, backtrace, CD_FLAG_TXT | CD_FLAG_ISNOTEDITABLE);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
description = make_description(pd, /*skipped names*/NULL, strlen(backtrace) - 1, MAKEDESC_SHOW_FILES);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
expected = xasprintf(
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"%s: %*s%s\n"
|
|
Packit |
4f15d5 |
"\n"
|
|
Packit |
4f15d5 |
"%s: %*sText file, %llu bytes\n",
|
|
Packit |
4f15d5 |
FILENAME_REASON, 14 - strlen(FILENAME_REASON), "", "will_segfault killed by SIGSEGV",
|
|
Packit |
4f15d5 |
FILENAME_PACKAGE, 14 - strlen(FILENAME_PACKAGE), "", "libreport",
|
|
Packit |
4f15d5 |
FILENAME_COUNT, 14 - strlen(FILENAME_COUNT), "", "0",
|
|
Packit |
4f15d5 |
FILENAME_BACKTRACE, 14 - strlen(FILENAME_BACKTRACE), "", backtrace,
|
|
Packit |
4f15d5 |
FILENAME_BACKTRACE, 14 - strlen(FILENAME_BACKTRACE), "", (long long unsigned)strlen(backtrace)
|
|
Packit |
4f15d5 |
);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
if (strcmp(expected, description) != 0)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
printf("E:\n'%s'\n\nC:\n'%s'\n", expected, description);
|
|
Packit |
4f15d5 |
assert(!"The description do not matches the expected description");
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(expected);
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
problem_data_free(pd);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
return 0;
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
]])
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
## -------------- ##
|
|
Packit |
4f15d5 |
## not_reportable ##
|
|
Packit |
4f15d5 |
## -------------- ##
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
AT_TESTFUN([not_reportable],
|
|
Packit |
4f15d5 |
[[
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
#include "internal_libreport.h"
|
|
Packit |
4f15d5 |
#include <assert.h>
|
|
Packit |
4f15d5 |
int main(int argc, char **argv)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
g_verbose = 3;
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_t *pd = problem_data_new();
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
problem_data_add_text_noteditable(pd, FILENAME_NOT_REPORTABLE, "not-reportable");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
char *description = make_description(pd, /*skipped names*/NULL, CD_MAX_TEXT_SIZE,
|
|
Packit |
4f15d5 |
MAKEDESC_SHOW_URLS);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
char *expected = xasprintf("%s: %*s%s\n",
|
|
Packit |
4f15d5 |
"Reported", 14 - strlen("Reported"), "", "cannot be reported");
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
if (strstr(description, expected) == NULL)
|
|
Packit |
4f15d5 |
{
|
|
Packit |
4f15d5 |
printf("E:\n'%s'\n\nC:\n'%s'\n", expected, description);
|
|
Packit |
4f15d5 |
assert(!"The description for not-reportable do not matches the expected description");
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
free(description);
|
|
Packit |
4f15d5 |
free(expected);
|
|
Packit |
4f15d5 |
problem_data_free(pd);
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
return 0;
|
|
Packit |
4f15d5 |
}
|
|
Packit |
4f15d5 |
|
|
Packit |
4f15d5 |
]])
|