* tests/nlattr_ndmsg.c: Include <netinet/in.h> and <arpa/inet.h>. (NDA_PORT): New macro. (main): Check decoding of NDA_DST, NDA_CACHEINFO and NDA_PORT. --- tests/nlattr_ndmsg.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+)
diff --git a/tests/nlattr_ndmsg.c b/tests/nlattr_ndmsg.c index 67aee88..8538a82 100644 --- a/tests/nlattr_ndmsg.c +++ b/tests/nlattr_ndmsg.c @@ -29,12 +29,16 @@ #include "tests.h" #include <stdio.h> +#include <netinet/in.h> +#include <arpa/inet.h> #include "test_nlattr.h" #ifdef HAVE_LINUX_NEIGHBOUR_H # include <linux/neighbour.h> #endif #include <linux/rtnetlink.h> +#define NDA_PORT 6 + static void init_ndmsg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -87,6 +91,33 @@ main(void) 4, pattern, 4, print_quoted_hex(pattern, 4)); + TEST_NLATTR(fd, nlh0, hdrlen, + init_ndmsg, print_ndmsg, + NDA_DST, 4, pattern, 4, + print_quoted_hex(pattern, 4)); + + static const struct nda_cacheinfo ci = { + .ndm_confirmed = 0xabcdedad, + .ndm_used = 0xbcdaedad, + .ndm_updated = 0xcdbadeda, + .ndm_refcnt = 0xdeadbeda + }; + + TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_ndmsg, print_ndmsg, + NDA_CACHEINFO, pattern, ci, + PRINT_FIELD_U("{", ci, ndm_confirmed); + PRINT_FIELD_U(", ", ci, ndm_used); + PRINT_FIELD_U(", ", ci, ndm_updated); + PRINT_FIELD_U(", ", ci, ndm_refcnt); + printf("}")); + + const uint16_t port = 0xabcd; + TEST_NLATTR_OBJECT(fd, nlh0, hdrlen, + init_ndmsg, print_ndmsg, + NDA_PORT, pattern, port, + printf("htons(%u)", ntohs(port))); + puts("+++ exited with 0 +++"); return 0; } -- 2.7.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel