From 87535077102e9b96fd012eafc071a6b0eb05f22a Mon Sep 17 00:00:00 2001 From: JingPiao Chen Date: Mon, 4 Sep 2017 15:11:33 +0800 Subject: [PATCH] tests: check decoding of tcmsg netlink attributes * tests/nlattr_tcmsg.c: Include and . (main): Check decoding of TCA_STATS and TCA_RATE. --- tests/nlattr_tcmsg.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/nlattr_tcmsg.c b/tests/nlattr_tcmsg.c index 00b7ae46..32ce4790 100644 --- a/tests/nlattr_tcmsg.c +++ b/tests/nlattr_tcmsg.c @@ -29,7 +29,9 @@ #include "tests.h" #include +#include #include "test_nlattr.h" +#include #include static void @@ -80,6 +82,42 @@ main(void) 4, pattern, 4, print_quoted_hex(pattern, 4)); + static const struct tc_stats st = { + .bytes = 0xabcdcdbefeadefac, + .packets = 0xbcdeaefd, + .drops = 0xcdedafed, + .overlimits = 0xdcdbefad, + .bps = 0xefaebfad, + .pps = 0xfefbaedb, + .qlen = 0xabcdefab, + .backlog = 0xbdeabeab + }; + char buf[offsetofend(struct tc_stats, backlog)]; + memcpy(buf, &st, sizeof(buf)); + TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_tcmsg, print_tcmsg, + TCA_STATS, pattern, buf, + PRINT_FIELD_U("{", st, bytes); + PRINT_FIELD_U(", ", st, packets); + PRINT_FIELD_U(", ", st, drops); + PRINT_FIELD_U(", ", st, overlimits); + PRINT_FIELD_U(", ", st, bps); + PRINT_FIELD_U(", ", st, pps); + PRINT_FIELD_U(", ", st, qlen); + PRINT_FIELD_U(", ", st, backlog); + printf("}")); + + static const struct tc_estimator est = { + .interval = 0xcd, + .ewma_log = 0xab + }; + TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_tcmsg, print_tcmsg, + TCA_RATE, pattern, est, + PRINT_FIELD_D("{", est, interval); + PRINT_FIELD_U(", ", est, ewma_log); + printf("}")); + puts("+++ exited with 0 +++"); return 0; } -- 2.40.0