]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
unit-tests: Allow configuring log levels for individual groups
authorTobias Brunner <tobias@strongswan.org>
Tue, 27 Jul 2021 16:37:26 +0000 (18:37 +0200)
committerTobias Brunner <tobias@strongswan.org>
Wed, 29 Jun 2022 08:28:50 +0000 (10:28 +0200)
src/libcharon/tests/utils/exchange_test_helper.c
src/libstrongswan/tests/test_runner.c

index e3f434d59b824394c90703f20fd095fb033857d4..8c57c8877832f5087281d592b2bdc8b7acae7cad 100644 (file)
@@ -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);
index caaa4d22639b5a59c75a46efc88748dc291f6f03..6d83d83a8e69474abb0d66b7987e49325d449a7c 100644 (file)
@@ -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);