|
Packit |
8ea169 |
# -*- Autotest -*-
|
|
Packit |
8ea169 |
# vim:set makeprg=rm\ testsuite;\ make\ testsuite;\ ./testsuite\ -v\ ??
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
AT_BANNER([abrt_conf])
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
AT_TESTFUN([load_abrt_conf_normalized_paths],
|
|
Packit |
8ea169 |
[[
|
|
Packit |
8ea169 |
/* This will tell gcc to show message in this AT file. */
|
|
Packit |
8ea169 |
#line 10 "abrt_conf.at"
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
#include "libabrt.h"
|
|
Packit |
8ea169 |
#include <assert.h>
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
const char *line;
|
|
Packit |
8ea169 |
const char *const *global_option;
|
|
Packit |
8ea169 |
const char *expected;
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
void test(struct result **res)
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
char conf_file[] = "/tmp/abrt_test.conf.XXXXXX";
|
|
Packit |
8ea169 |
int conf_fd = mkstemp(conf_file);
|
|
Packit |
8ea169 |
assert(conf_fd >= 0 && "Temporary test configuration file");
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
printf("**** %s\n", conf_file);
|
|
Packit |
8ea169 |
for (struct result **iter = res; NULL != *iter; ++iter)
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
if ((*iter)->line != NULL)
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
printf("---- %s", (*iter)->line);
|
|
Packit |
8ea169 |
full_write_str(conf_fd, (*iter)->line);
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
puts("----");
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
close(conf_fd);
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
setenv("ABRT_DEFAULT_CONF_DIR", "/tmp", 1);
|
|
Packit |
8ea169 |
setenv("ABRT_CONF_DIR", "/tmp", 1);
|
|
Packit |
8ea169 |
setenv("ABRT_CONF_FILE_NAME", strrchr(conf_file, '/') + 1, 1);
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
/*
|
|
Packit |
8ea169 |
int old_stderr = dup(STDERR_FILENO);
|
|
Packit |
8ea169 |
int errpipe[2];
|
|
Packit |
8ea169 |
pipe(errpipe);
|
|
Packit |
8ea169 |
fcntl(ts_pipefd[0], F_SETFL, O_NONBLOCK);
|
|
Packit |
8ea169 |
dup2(errpipe[1], STDERR_FILENO);
|
|
Packit |
8ea169 |
*/
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
load_abrt_conf();
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
/*
|
|
Packit |
8ea169 |
dup2(old_stderr, STDERR_FILENO);
|
|
Packit |
8ea169 |
char *error_output = xmalloc_read(errpipe[0], NULL);
|
|
Packit |
8ea169 |
close(errpipe[0]);
|
|
Packit |
8ea169 |
*/
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
unsetenv("ABRT_CONF_FILE_NAME");
|
|
Packit |
8ea169 |
unsetenv("ABRT_CONF_DIR");
|
|
Packit |
8ea169 |
unsetenv("ABRT_DEFAULT_CONF_DIR");
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
for (struct result **iter = res; NULL != *iter; ++iter)
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
if (( (*(*iter)->global_option != NULL && (*iter)->expected == NULL)
|
|
Packit |
8ea169 |
|| (*(*iter)->global_option == NULL && (*iter)->expected != NULL))
|
|
Packit |
8ea169 |
||
|
|
Packit |
8ea169 |
( (*(*iter)->global_option != NULL && (*iter)->expected != NULL)
|
|
Packit |
8ea169 |
&& (strcmp(*(*iter)->global_option, (*iter)->expected) != 0)))
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
fprintf(stderr, "Real != Expected :: '%s' != '%s'\n", *(*iter)->global_option, (*iter)->expected);
|
|
Packit |
8ea169 |
abort();
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
free_abrt_conf_data();
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
int main(int argc, char *argv[])
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
g_verbose = 3;
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
struct result res_dump_location = {
|
|
Packit |
8ea169 |
.line = "DumpLocation = /foo/blah/abrt\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_dump_location,
|
|
Packit |
8ea169 |
.expected = "/foo/blah/abrt",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result res_archive_dir = {
|
|
Packit |
8ea169 |
.line = "WatchCrashdumpArchiveDir = /opt/bar/abrt\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_sWatchCrashdumpArchiveDir,
|
|
Packit |
8ea169 |
.expected = "/opt/bar/abrt",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result *results[] = {
|
|
Packit |
8ea169 |
&res_dump_location,
|
|
Packit |
8ea169 |
&res_archive_dir,
|
|
Packit |
8ea169 |
NULL,
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
test(results);
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
struct result res_dump_location = {
|
|
Packit |
8ea169 |
.line = "DumpLocation = /foo/blah/abrt////\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_dump_location,
|
|
Packit |
8ea169 |
.expected = "/foo/blah/abrt",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result res_archive_dir = {
|
|
Packit |
8ea169 |
.line = "WatchCrashdumpArchiveDir = /opt/bar/abrt////\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_sWatchCrashdumpArchiveDir,
|
|
Packit |
8ea169 |
.expected = "/opt/bar/abrt",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result *results[] = {
|
|
Packit |
8ea169 |
&res_dump_location,
|
|
Packit |
8ea169 |
&res_archive_dir,
|
|
Packit |
8ea169 |
NULL,
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
test(results);
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
struct result res_dump_location = {
|
|
Packit |
8ea169 |
.line = "DumpLocation = /foo//blah///abrt\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_dump_location,
|
|
Packit |
8ea169 |
.expected = "/foo/blah/abrt",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result res_archive_dir = {
|
|
Packit |
8ea169 |
.line = "WatchCrashdumpArchiveDir = /opt//bar///abrt\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_sWatchCrashdumpArchiveDir,
|
|
Packit |
8ea169 |
.expected = "/opt/bar/abrt",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result *results[] = {
|
|
Packit |
8ea169 |
&res_dump_location,
|
|
Packit |
8ea169 |
&res_archive_dir,
|
|
Packit |
8ea169 |
NULL,
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
test(results);
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
{
|
|
Packit |
8ea169 |
struct result res_dump_location = {
|
|
Packit |
8ea169 |
.line = "DumpLocation = /////\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_dump_location,
|
|
Packit |
8ea169 |
.expected = "/",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result res_archive_dir = {
|
|
Packit |
8ea169 |
.line = "WatchCrashdumpArchiveDir = /////\n",
|
|
Packit |
8ea169 |
.global_option = (const char *const *)&g_settings_sWatchCrashdumpArchiveDir,
|
|
Packit |
8ea169 |
.expected = "/",
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
struct result *results[] = {
|
|
Packit |
8ea169 |
&res_dump_location,
|
|
Packit |
8ea169 |
&res_archive_dir,
|
|
Packit |
8ea169 |
NULL,
|
|
Packit |
8ea169 |
};
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
test(results);
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
|
|
Packit |
8ea169 |
return 0;
|
|
Packit |
8ea169 |
}
|
|
Packit |
8ea169 |
]])
|