[PATCH 2/2] tests: add check for decoding netlink get and new flags
Dmitry V. Levin
ldv at altlinux.org
Wed Jun 7 12:59:08 UTC 2017
On Wed, Jun 07, 2017 at 12:47:46PM +0800, JingPiao Chen wrote:
> * tests/netlink_route.c: Add check for
> NETLINK_ROUTE get and new flags.
> * tests/netlink_sock_diag.c: Add check for
> NETLINK_SOCK_DIAG get flags.
> * tests/netlink_xfrm.c: Add check for
> NETLINK_XFRM get and new flags.
> ---
> tests/netlink_route.c | 26 ++++++++++++++++++++++++++
> tests/netlink_sock_diag.c | 18 ++++++++++++++++++
> tests/netlink_xfrm.c | 26 ++++++++++++++++++++++++++
> 3 files changed, 70 insertions(+)
>
> diff --git a/tests/netlink_route.c b/tests/netlink_route.c
> index 7946121..0198e8a 100644
> --- a/tests/netlink_route.c
> +++ b/tests/netlink_route.c
> @@ -50,6 +50,31 @@ test_nlmsg_type(const int fd)
> fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
> }
>
> +static void
> +test_nlmsg_flags(const int fd)
> +{
> + long rc;
> + struct nlmsghdr nlh = {
> + .nlmsg_len = sizeof(nlh),
> + };
> +
> + nlh.nlmsg_type = RTM_GETLINK;
> + nlh.nlmsg_flags = NLM_F_DUMP;
> + rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
> + printf("sendto(%d, {{len=%u, type=RTM_GETLINK"
> + ", flags=NLM_F_DUMP, seq=0, pid=0}}"
> + ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
> + fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
> +
> + nlh.nlmsg_type = RTM_NEWLINK;
> + nlh.nlmsg_flags = NLM_F_REPLACE;
> + rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
> + printf("sendto(%d, {{len=%u, type=RTM_NEWLINK"
> + ", flags=NLM_F_REPLACE, seq=0, pid=0}}"
> + ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
> + fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
Please add a case with nlmsg_flags neither "get" nor "new".
> +}
> +
> int main(void)
> {
> skip_if_unavailable("/proc/self/fd/");
> @@ -57,6 +82,7 @@ int main(void)
> int fd = create_nl_socket(NETLINK_ROUTE);
>
> test_nlmsg_type(fd);
> + test_nlmsg_flags(fd);
>
> printf("+++ exited with 0 +++\n");
>
> diff --git a/tests/netlink_sock_diag.c b/tests/netlink_sock_diag.c
> index 09eb2bf..943e90b 100644
> --- a/tests/netlink_sock_diag.c
> +++ b/tests/netlink_sock_diag.c
> @@ -55,6 +55,23 @@ test_nlmsg_type(const int fd)
> fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
> }
>
> +static void
> +test_nlmsg_flags(const int fd)
> +{
> + long rc;
> + struct nlmsghdr nlh = {
> + .nlmsg_len = sizeof(nlh),
> + .nlmsg_type = SOCK_DIAG_BY_FAMILY,
> + .nlmsg_flags = NLM_F_DUMP,
> + };
> +
> + rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
> + printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
> + ", flags=NLM_F_DUMP, seq=0, pid=0}}"
> + ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
> + fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
> +}
> +
> int main(void)
> {
> skip_if_unavailable("/proc/self/fd/");
> @@ -62,6 +79,7 @@ int main(void)
> int fd = create_nl_socket(NETLINK_SOCK_DIAG);
>
> test_nlmsg_type(fd);
> + test_nlmsg_flags(fd);
>
> printf("+++ exited with 0 +++\n");
>
> diff --git a/tests/netlink_xfrm.c b/tests/netlink_xfrm.c
> index fa50080..7183230 100644
> --- a/tests/netlink_xfrm.c
> +++ b/tests/netlink_xfrm.c
> @@ -51,6 +51,31 @@ test_nlmsg_type(const int fd)
> fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
> }
>
> +static void
> +test_nlmsg_flags(const int fd)
> +{
> + long rc;
> + struct nlmsghdr nlh = {
> + .nlmsg_len = sizeof(nlh),
> + };
> +
> + nlh.nlmsg_type = XFRM_MSG_GETSA;
> + nlh.nlmsg_flags = NLM_F_DUMP;
> + rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
> + printf("sendto(%d, {{len=%u, type=XFRM_MSG_GETSA"
> + ", flags=NLM_F_DUMP, seq=0, pid=0}}"
> + ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
> + fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
> +
> + nlh.nlmsg_type = XFRM_MSG_NEWSA;
> + nlh.nlmsg_flags = NLM_F_REPLACE;
> + rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
> + printf("sendto(%d, {{len=%u, type=XFRM_MSG_NEWSA"
> + ", flags=NLM_F_REPLACE, seq=0, pid=0}}"
> + ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
> + fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
Likewise, please add a case with nlmsg_flags neither "get" nor "new".
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20170607/8b4c1e68/attachment.bin>
More information about the Strace-devel
mailing list