From 269358bd5eeef01fb336e77cda692c51f1fe821c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 14 Sep 2020 09:19:02 +0200 Subject: [PATCH] One more debugging patch --- ...test-path-more-debugging-information.patch | 78 +++++++++++++++++++ systemd.spec | 1 + 2 files changed, 79 insertions(+) create mode 100644 0001-test-path-more-debugging-information.patch diff --git a/0001-test-path-more-debugging-information.patch b/0001-test-path-more-debugging-information.patch new file mode 100644 index 0000000..23b6309 --- /dev/null +++ b/0001-test-path-more-debugging-information.patch @@ -0,0 +1,78 @@ +From 6781346769d29612930ffd2a0f4c3fd602026328 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= +Date: Mon, 14 Sep 2020 08:56:28 +0200 +Subject: [PATCH] test-path: more debugging information +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Just to make it easier to grok what happens when test-path fails. +Change printf→log_info so that output is interleaved and not split in two +independent parts in log files. +--- + src/test/test-path.c | 31 ++++++++++++++++++------------- + 1 file changed, 18 insertions(+), 13 deletions(-) + +diff --git a/src/test/test-path.c b/src/test/test-path.c +index 1075f31bc6..218b8a976b 100644 +--- a/src/test/test-path.c ++++ b/src/test/test-path.c +@@ -1,7 +1,6 @@ + /* SPDX-License-Identifier: LGPL-2.1+ */ + + #include +-#include + #include + #include + +@@ -78,32 +77,38 @@ static Service *service_for_path(Manager *m, Path *path, const char *service_nam + return SERVICE(service_unit); + } + +-static void check_states(Manager *m, Path *path, Service *service, PathState path_state, ServiceState service_state) { ++static void _check_states(unsigned line, ++ Manager *m, Path *path, Service *service, PathState path_state, ServiceState service_state) { + assert_se(m); + assert_se(service); + + usec_t end = now(CLOCK_MONOTONIC) + 30 * USEC_PER_SEC; + +- while (path->result != PATH_SUCCESS || service->result != SERVICE_SUCCESS || +- path->state != path_state || service->state != service_state) { ++ while (path->state != path_state || service->state != service_state || ++ path->result != PATH_SUCCESS || service->result != SERVICE_SUCCESS) { + + assert_se(sd_event_run(m->event, 100 * USEC_PER_MSEC) >= 0); + +- printf("%s: state = %s; result = %s \n", +- UNIT(path)->id, +- path_state_to_string(path->state), +- path_result_to_string(path->result)); +- printf("%s: state = %s; result = %s \n", +- UNIT(service)->id, +- service_state_to_string(service->state), +- service_result_to_string(service->result)); ++ usec_t n = now(CLOCK_MONOTONIC); ++ log_info("line %d: %s: state = %s; result = %s (left: %" PRIi64 ")", ++ line, ++ UNIT(path)->id, ++ path_state_to_string(path->state), ++ path_result_to_string(path->result), ++ end - n); ++ log_info("line %d: %s: state = %s; result = %s", ++ line, ++ UNIT(service)->id, ++ service_state_to_string(service->state), ++ service_result_to_string(service->result)); + +- if (now(CLOCK_MONOTONIC) >= end) { ++ if (n >= end) { + log_error("Test timeout when testing %s", UNIT(path)->id); + exit(EXIT_FAILURE); + } + } + } ++#define check_states(...) _check_states(__LINE__, __VA_ARGS__) + + static void test_path_exists(Manager *m) { + const char *test_path = "/tmp/test-path_exists"; diff --git a/systemd.spec b/systemd.spec index 05af082..4f4953f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -72,6 +72,7 @@ Patch0001: use-bfq-scheduler.patch Patch0002: 0001-Revert-test-path-increase-timeout.patch Patch0003: 0002-test-path-do-not-fail-the-test-if-we-fail-to-start-s.patch +Patch0004: 0001-test-path-more-debugging-information.patch Patch0004: 0001-test-acl-util-output-more-debug-info.patch Patch0005: 0001-Do-not-assert-in-test_add_acls_for_user.patch