Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Apr 2021 09:12:03 GMT
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: fe04896da3fb - stable/13 - Improve debugging output on routing tests failure.
Message-ID:  <202104260912.13Q9C3fd091218@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by melifaro:

URL: https://cgit.FreeBSD.org/src/commit/?id=fe04896da3fbfc6c57154024dee090f365c8f1b1

commit fe04896da3fbfc6c57154024dee090f365c8f1b1
Author:     Alexander V. Chernikov <melifaro@FreeBSD.org>
AuthorDate: 2021-04-23 21:28:38 +0000
Commit:     Alexander V. Chernikov <melifaro@FreeBSD.org>
CommitDate: 2021-04-26 08:49:14 +0000

    Improve debugging output on routing tests failure.
    
    Most of the routing tests create per-test VNET, making
     it harder to repeat the failure with CLI tools.
    Provide an additional route/nexthop data on failure.
    
    Differential Revision: https://reviews.freebsd.org/D29957
    Reviewed by:    kp
    MFC after:      2 weeks
    
    (cherry picked from commit bddae5c8a64dc6b292198945cbe676bb2158d438)
---
 tests/sys/net/routing/rtsock_print.h | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/tests/sys/net/routing/rtsock_print.h b/tests/sys/net/routing/rtsock_print.h
index b44fcca25053..20bb1c51bc33 100644
--- a/tests/sys/net/routing/rtsock_print.h
+++ b/tests/sys/net/routing/rtsock_print.h
@@ -40,7 +40,10 @@
 #define	RTSOCK_ATF_REQUIRE_MSG(_rtm, _cond, _fmt, ...)	 do {	\
 	if (!(_cond)) {						\
 		printf("-- CONDITION FAILED, rtm dump  --\n\n");\
-		rtsock_print_message(_rtm);				\
+		rtsock_print_message(_rtm);			\
+		rtsock_print_table(AF_INET);			\
+		rtsock_print_table(AF_INET6);			\
+		printf("===================================\n");\
 	}							\
 	ATF_REQUIRE_MSG(_cond, _fmt, ##__VA_ARGS__);		\
 } while (0);
@@ -381,4 +384,31 @@ rtsock_print_message(struct rt_msghdr *rtm)
 	}
 }
 
+static void
+print_command(char *cmd)
+{
+	char line[1024];
+
+	FILE *fp = popen(cmd, "r");
+	if (fp != NULL) {
+		while (fgets(line, sizeof(line), fp) != NULL)
+			printf("%s", line);
+		pclose(fp);
+	}
+}
+
+void
+rtsock_print_table(int family)
+{
+	char cmdbuf[128];
+	char *key = (family == AF_INET) ? "4" : "6";
+
+	snprintf(cmdbuf, sizeof(cmdbuf), "/usr/bin/netstat -%srnW", key);
+	printf("==== %s ===\n", cmdbuf);
+	print_command(cmdbuf);
+	snprintf(cmdbuf, sizeof(cmdbuf), "/usr/bin/netstat -%sonW", key);
+	printf("==== %s ===\n", cmdbuf);
+	print_command(cmdbuf);
+}
+
 #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202104260912.13Q9C3fd091218>