From: Tobias Brunner Date: Tue, 27 Jul 2021 16:37:26 +0000 (+0200) Subject: unit-tests: Allow configuring log levels for individual groups X-Git-Tag: 5.9.7dr2~1^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=23b0220b1cc4b53afe9ca00a8f10762fdabed14e;p=thirdparty%2Fstrongswan.git unit-tests: Allow configuring log levels for individual groups --- diff --git a/src/libcharon/tests/utils/exchange_test_helper.c b/src/libcharon/tests/utils/exchange_test_helper.c index e3f434d59b..8c57c88778 100644 --- a/src/libcharon/tests/utils/exchange_test_helper.c +++ b/src/libcharon/tests/utils/exchange_test_helper.c @@ -300,17 +300,33 @@ METHOD(exchange_test_helper_t, add_listener, void, */ static void initialize_logging() { - int level = LEVEL_SILENT; - char *verbosity; + char buf[BUF_LEN], *verbosity; + level_t level; + debug_t group; + + lib->settings->set_default_str(lib->settings, "%s.filelog.stderr.default", + "-1", lib->ns); verbosity = getenv("TESTS_VERBOSITY"); if (verbosity) { level = atoi(verbosity); + lib->settings->set_int(lib->settings, "%s.filelog.stderr.default", + level, lib->ns); + } + + for (group = 0; group < DBG_MAX; group++) + { + snprintf(buf, sizeof(buf), "TESTS_VERBOSITY_%s", + enum_to_name(debug_names, group)); + verbosity = getenv(buf); + if (verbosity) + { + level = atoi(verbosity); + lib->settings->set_int(lib->settings, "%s.filelog.stderr.%N", + level, lib->ns, debug_lower_names, group); + } } - lib->settings->set_int(lib->settings, "%s.filelog.stderr.default", - lib->settings->get_int(lib->settings, "%s.filelog.stderr.default", - level, lib->ns), lib->ns); lib->settings->set_bool(lib->settings, "%s.filelog.stderr.ike_name", TRUE, lib->ns); charon->load_loggers(charon); diff --git a/src/libstrongswan/tests/test_runner.c b/src/libstrongswan/tests/test_runner.c index caaa4d2263..6d83d83a8e 100644 --- a/src/libstrongswan/tests/test_runner.c +++ b/src/libstrongswan/tests/test_runner.c @@ -735,6 +735,30 @@ static bool run_suite(test_suite_t *suite, test_runner_init_t init, char *cfg, return FALSE; } +/** + * Configure log levels for specific groups + */ +static void setup_log_levels(level_t *base) +{ + char buf[BUF_LEN], *verbosity; + debug_t group; + level_t level; + + for (group = 0; group < DBG_MAX; group++) + { + snprintf(buf, sizeof(buf), "TESTS_VERBOSITY_%s", + enum_to_name(debug_names, group)); + + verbosity = getenv(buf); + if (verbosity) + { + level = atoi(verbosity); + dbg_default_set_level_group(group, level); + *base = max(*base, level); + } + } +} + /** * See header. */ @@ -772,6 +796,8 @@ int test_runner_run(const char *name, test_configuration_t configs[], } dbg_default_set_level(level); + setup_log_levels(&level); + fprintf(stderr, "Running %u '%s' test suites:\n", array_count(suites), name); enumerator = array_create_enumerator(suites);