static void assert_almighty_always_pipe (gboolean always_pipe_value, gboolean tree_start_expected, gboolean tree_stop_expected, gboolean was_init_called, gboolean was_deinit_called) { CfgTree tree; AlmightyAlwaysPipe *pipe; cfg_tree_init_instance (&tree, NULL); pipe = create_and_attach_almighty_pipe (&tree, always_pipe_value); assert_gboolean (cfg_tree_start (&tree), tree_start_expected, "cfg_tree_start() did not return the expected value"); assert_gboolean (cfg_tree_stop (&tree), tree_stop_expected, "cfg_tree_stop() did not return the epxected value"); assert_gboolean (pipe->init_called, was_init_called, "->init was called state"); assert_gboolean (pipe->deinit_called, was_deinit_called, "->deinit was called state"); cfg_tree_free_instance (&tree); }
GlobalConfig * cfg_new(gint version) { GlobalConfig *self = g_new0(GlobalConfig, 1); self->module_config = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, (GDestroyNotify) module_config_free); self->user_version = version; self->flush_lines = 100; self->flush_timeout = 10000; /* 10 seconds */ self->mark_freq = 1200; /* 20 minutes */ self->mark_mode = MM_HOST_IDLE; self->chain_hostnames = 0; self->time_reopen = 60; self->time_reap = 60; self->log_fifo_size = 10000; self->log_msg_size = 8192; self->file_uid = 0; self->file_gid = 0; self->file_perm = 0600; self->dir_uid = 0; self->dir_gid = 0; self->dir_perm = 0700; self->dns_cache_size = 1007; self->dns_cache_expire = 3600; self->dns_cache_expire_failed = 60; self->threaded = TRUE; self->pass_unix_credentials = TRUE; log_template_options_defaults(&self->template_options); self->template_options.ts_format = TS_FMT_BSD; self->template_options.frac_digits = 0; self->template_options.on_error = ON_ERROR_DROP_MESSAGE; host_resolve_options_defaults(&self->host_resolve_options); self->host_resolve_options.use_fqdn = FALSE; self->host_resolve_options.use_dns = TRUE; self->host_resolve_options.use_dns_cache = TRUE; self->host_resolve_options.normalize_hostnames = FALSE; self->recv_time_zone = NULL; self->keep_timestamp = TRUE; self->use_uniqid = FALSE; stats_options_defaults(&self->stats_options); cfg_tree_init_instance(&self->tree, self); cfg_register_builtin_plugins(self); return self; }
GlobalConfig * cfg_new(gint version) { GlobalConfig *self = g_new0(GlobalConfig, 1); self->user_version = version; self->flush_lines = 0; self->flush_timeout = 10000; /* 10 seconds */ self->mark_freq = 1200; /* 20 minutes */ self->mark_mode = MM_HOST_IDLE; self->stats_freq = 600; self->chain_hostnames = 0; self->use_fqdn = 0; self->use_dns = 1; self->time_reopen = 60; self->time_reap = 60; self->log_fifo_size = 10000; self->log_msg_size = 8192; self->follow_freq = -1; self->file_uid = 0; self->file_gid = 0; self->file_perm = 0600; self->dir_uid = 0; self->dir_gid = 0; self->dir_perm = 0700; self->use_dns_cache = 1; self->dns_cache_size = 1007; self->dns_cache_expire = 3600; self->dns_cache_expire_failed = 60; self->threaded = FALSE; log_template_options_defaults(&self->template_options); self->template_options.ts_format = TS_FMT_BSD; self->template_options.frac_digits = 0; self->recv_time_zone = NULL; self->keep_timestamp = TRUE; cfg_tree_init_instance(&self->tree, self); return self; }
static void test_pipe_init_multi_success (void) { CfgTree tree; testcase_begin ("A pipe of all good nodes will start & stop properly"); cfg_tree_init_instance (&tree, NULL); create_and_attach_almighty_pipe (&tree, TRUE); create_and_attach_almighty_pipe (&tree, TRUE); create_and_attach_almighty_pipe (&tree, TRUE); assert_true (cfg_tree_start (&tree), "Starting a tree of all-good nodes works"); assert_true (cfg_tree_stop (&tree), "Stopping a tree of all-good nodes works"); cfg_tree_free_instance (&tree); testcase_end (); }
static void test_pipe_init_multi_with_bad_node (void) { AlmightyAlwaysPipe *pipe1, *pipe2, *pipe3; CfgTree tree; testcase_begin ("A pipe of some bad nodes will not start, but cleans up nicely."); cfg_tree_init_instance (&tree, NULL); pipe1 = create_and_attach_almighty_pipe (&tree, TRUE); pipe2 = create_and_attach_almighty_pipe (&tree, FALSE); pipe3 = create_and_attach_almighty_pipe (&tree, TRUE); assert_false (cfg_tree_start (&tree), "Starting a tree of all-good nodes works"); assert_true (cfg_tree_stop (&tree), "Stopping a tree of all-good nodes works"); assert_true (pipe1->init_called, "The initializer of the first good pipe is called"); assert_true (pipe2->init_called, "The initializer of the bad pipe is called"); assert_false (pipe3->init_called, "The initializer of the second good pipe is NOT called"); assert_true (pipe1->deinit_called, "The deinitializer of the first good pipe is called"); assert_false (pipe2->deinit_called, "The deinitializer of the bad pipe is NOT called"); assert_false (pipe3->deinit_called, "The deinitializer of the second good pipe is NOT called"); cfg_tree_free_instance (&tree); testcase_end (); }