From 9a90a05c9000dc7d21afcfab6efbd26715aa3f08 Mon Sep 17 00:00:00 2001 From: Jakub Filak Date: Mon, 8 Jun 2015 11:32:23 +0200 Subject: [PATCH] testsuite: add a test for AlwaysExcludedElements Related: #362 Signed-off-by: Jakub Filak Conflicts: tests/Makefile.am --- tests/Makefile.am | 3 +- tests/global_config.at | 104 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/testsuite.at | 1 + 3 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 tests/global_config.at diff --git a/tests/Makefile.am b/tests/Makefile.am index eaf1ac2..5ed7af6 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -43,7 +43,8 @@ TESTSUITE_AT = \ xfuncs.at \ string_list.at \ ureport.at \ - dump_dir.at + dump_dir.at \ + global_config.at EXTRA_DIST += $(TESTSUITE_AT) TESTSUITE = $(srcdir)/testsuite diff --git a/tests/global_config.at b/tests/global_config.at new file mode 100644 index 0000000..a6f5423 --- /dev/null +++ b/tests/global_config.at @@ -0,0 +1,104 @@ +# -*- Autotest -*- + +AT_BANNER([global_config]) + +## ------------------------ ## +## always_excluded_elements ## +## ------------------------ ## + +AT_TESTFUN([always_excluded_elements], +[[ +#include "internal_libreport.h" +#include +#include + +int main(int argc, char **argv) +{ + g_verbose = 3; + char cwd_buf[PATH_MAX + 1]; + + static const char *dirs[] = { + NULL, + NULL, + }; + dirs[0] = getcwd(cwd_buf, sizeof(cwd_buf)); + + static int dir_flags[] = { + CONF_DIR_FLAG_NONE, + -1, + }; + + unlink("libreport.conf"); + FILE *lrf = fopen("libreport.conf", "wx"); + assert(lrf != NULL); + fclose(lrf); + + assert(load_global_configuration_from_dirs(dirs, dir_flags)); + + { + unsetenv("EXCLUDE_FROM_REPORT"); + string_vector_ptr_t excluded = get_global_always_excluded_elements(); + + assert(excluded != NULL); + assert(excluded[0] == NULL); + + string_vector_free(excluded); + } + + { + setenv("EXCLUDE_FROM_REPORT", "hostname, environ, uid", 1); + string_vector_ptr_t excluded = get_global_always_excluded_elements(); + + assert(excluded != NULL); + assert(strcmp(excluded[0], "hostname") == 0); + assert(strcmp(excluded[1], "environ") == 0); + assert(strcmp(excluded[2], "uid") == 0); + assert(excluded[3] == NULL); + + string_vector_free(excluded); + } + + free_global_configuration(); + + unlink("libreport.conf"); + lrf = fopen("libreport.conf", "wx"); + assert(lrf != NULL); + fprintf(lrf, "AlwaysExcludedElements = maps, var_log_messages, proc_pid_status"); + fclose(lrf); + + assert(load_global_configuration_from_dirs(dirs, dir_flags)); + + { + unsetenv("EXCLUDE_FROM_REPORT"); + string_vector_ptr_t excluded = get_global_always_excluded_elements(); + + assert(excluded != NULL); + assert(strcmp(excluded[0], "maps") == 0); + assert(strcmp(excluded[1], "var_log_messages") == 0); + assert(strcmp(excluded[2], "proc_pid_status") == 0); + assert(excluded[3] == NULL); + + string_vector_free(excluded); + } + + { + setenv("EXCLUDE_FROM_REPORT", "hostname, environ, uid", 1); + string_vector_ptr_t excluded = get_global_always_excluded_elements(); + + assert(excluded != NULL); + assert(strcmp(excluded[0], "hostname") == 0); + assert(strcmp(excluded[1], "environ") == 0); + assert(strcmp(excluded[2], "uid") == 0); + assert(strcmp(excluded[3], "maps") == 0); + assert(strcmp(excluded[4], "var_log_messages") == 0); + assert(strcmp(excluded[5], "proc_pid_status") == 0); + assert(excluded[6] == NULL); + + string_vector_free(excluded); + } + + unlink("libreport.conf"); + + return EXIT_SUCCESS; +} +]]) diff --git a/tests/testsuite.at b/tests/testsuite.at index 41107e7..91f0823 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -18,3 +18,4 @@ m4_include([report_python.at]) m4_include([string_list.at]) m4_include([ureport.at]) m4_include([dump_dir.at]) +m4_include([global_config.at]) -- 1.8.3.1