public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Jan Stancek <jstancek@redhat.com>
To: Wanlong Gao <gaowanlong@cn.fujitsu.com>
Cc: LTP <ltp-list@lists.sourceforge.net>
Subject: Re: [LTP] [PATCH] send*: fix errno of invalid flags
Date: Fri, 29 Nov 2013 04:10:44 -0500 (EST)	[thread overview]
Message-ID: <1052444498.3195483.1385716244006.JavaMail.root@redhat.com> (raw)
In-Reply-To: <1385629988-12052-1-git-send-email-gaowanlong@cn.fujitsu.com>



----- Original Message -----
> From: "Wanlong Gao" <gaowanlong@cn.fujitsu.com>
> To: "LTP" <ltp-list@lists.sourceforge.net>
> Sent: Thursday, 28 November, 2013 10:13:08 AM
> Subject: [LTP] [PATCH] send*: fix errno of invalid flags
> 
> After following kernel commit, the tcp_fastopen
> sysctl is enabled default, so the errno will
> no be ENOTSUP any more.
> 
> Actually, the flags of send* syscall is "unsigned int",
> then our test case passed "-1" to it will not be treated
> as an invalid flags.
> 
> commit 0d41cca490c274352211efac50e9598d39a9dc80
> Author: Yuchung Cheng <ycheng@google.com>
> Date:   Thu Oct 31 09:19:32 2013 -0700
> 
>     tcp: enable sockets to use MSG_FASTOPEN by default
> 
>     Applications have started to use Fast Open (e.g., Chrome browser has
>     such an optional flag) and the feature has gone through several
>     generations of kernels since 3.7 with many real network tests. It's
>     time to enable this flag by default for applications to test more
>     conveniently and extensively.
> 
>     Signed-off-by: Yuchung Cheng <ycheng@google.com>
>     Signed-off-by: Neal Cardwell <ncardwell@google.com>
>     Acked-by: Eric Dumazet <edumazet@google.com>
>     Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
> ---
>  testcases/kernel/syscalls/send/send01.c       | 6 ++++--
>  testcases/kernel/syscalls/sendmsg/sendmsg01.c | 6 +++++-
>  testcases/kernel/syscalls/sendto/sendto01.c   | 5 ++++-
>  3 files changed, 13 insertions(+), 4 deletions(-)

Hi,

my guess is that intention of testcase "invalid flags set"
was to get EOPNOTSUPP out of it. But this never worked for older kernels.
And on new kernels this is still likely going to depend on "sysctl_tcp_fastopen".

I'm running kernel < 3.6 and if I apply patch for send01.c
it fails with:
  send01      6  TFAIL  :  call succeeded unexpectedly

sendto(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024, MSG_OOB|MSG_DONTROUTE|MSG_PEEK|MSG_CTRUNC|MSG_PROXY|MSG_EOR|MSG_WAITALL|MSG_TRUNC|MSG_ERRQUEUE|MSG_DONTWAIT|MSG_CONFIRM|MSG_FIN|MSG_SYN|MSG_RST|MSG_NOSIGNAL|MSG_MORE|MSG_CMSG_CLOEXEC|0xbfff0000, NULL, 0) = 1024

I think we should get rid of that -1 in flags and use concrete flags we know
to be invalid. I recall suggesting SOCK_DGRAM + MSG_OOB last time this test needed update:

diff --git a/testcases/kernel/syscalls/send/send01.c b/testcases/kernel/syscalls/send/send01.c
index d228422..6ebe131 100644
--- a/testcases/kernel/syscalls/send/send01.c
+++ b/testcases/kernel/syscalls/send/send01.c
@@ -72,7 +72,6 @@ static void setup(void);
 static void setup0(void);
 static void setup1(void);
 static void setup2(void);
-static void setup3(void);
 static void cleanup0(void);
 static void cleanup1(void);
 
@@ -143,14 +142,14 @@ static struct test_case_t tdat[] = {
 #ifndef UCLINUX
        /* Skip since uClinux does not implement memory protection */
        {.domain = PF_INET,
-        .type = SOCK_STREAM,
+        .type = SOCK_DGRAM,
         .proto = 0,
-        .buf = (void *)-1,
+        .buf = buf,
         .buflen = sizeof(buf),
-        .flags = -1,
+        .flags = MSG_OOB,
         .retval = -1,
-        .experrno = EFAULT,
-        .setup = setup3,
+        .experrno = EOPNOTSUPP,
+        .setup = setup1,
         .cleanup = cleanup1,
         .desc = "invalid flags set"}
 #endif
@@ -352,11 +351,3 @@ static void setup2(void)
                tst_brkm(TBROK | TERRNO, cleanup, "socket setup failed connect "
                         "test %d", testno);
 }
-
-static void setup3(void)
-{
-       setup1();
-
-       if (tst_kvercmp(3, 6, 0) >= 0)
-               tdat[testno].experrno = ENOTSUP;
-}

Regards,
Jan


> 
> diff --git a/testcases/kernel/syscalls/send/send01.c
> b/testcases/kernel/syscalls/send/send01.c
> index d228422..0d91e92 100644
> --- a/testcases/kernel/syscalls/send/send01.c
> +++ b/testcases/kernel/syscalls/send/send01.c
> @@ -145,7 +145,7 @@ static struct test_case_t tdat[] = {
>  	{.domain = PF_INET,
>  	 .type = SOCK_STREAM,
>  	 .proto = 0,
> -	 .buf = (void *)-1,
> +	 .buf = buf,
>  	 .buflen = sizeof(buf),
>  	 .flags = -1,
>  	 .retval = -1,
> @@ -357,6 +357,8 @@ static void setup3(void)
>  {
>  	setup1();
>  
> -	if (tst_kvercmp(3, 6, 0) >= 0)
> +	if (tst_kvercmp(3, 12, 0) > 0)
> +		tdat[testno].experrno = EINVAL;
> +	else if (tst_kvercmp(3, 6, 0) >= 0)
>  		tdat[testno].experrno = ENOTSUP;
>  }
> diff --git a/testcases/kernel/syscalls/sendmsg/sendmsg01.c
> b/testcases/kernel/syscalls/sendmsg/sendmsg01.c
> index 90fbb5d..890834c 100644
> --- a/testcases/kernel/syscalls/sendmsg/sendmsg01.c
> +++ b/testcases/kernel/syscalls/sendmsg/sendmsg01.c
> @@ -730,8 +730,12 @@ static void setup7(void)
>  {
>  	setup1();
>  
> -	if (tst_kvercmp(3, 6, 0) >= 0)
> +	if (tst_kvercmp(3, 12, 0) > 0) {
>  		tdat[testno].retval = -1;
> +		tdat[testno].experrno = EISCONN;
> +	} else if (tst_kvercmp(3, 6, 0) >= 0) {
> +		tdat[testno].retval = -1;
> +	}
>  }
>  
>  static void setup8(void)
> diff --git a/testcases/kernel/syscalls/sendto/sendto01.c
> b/testcases/kernel/syscalls/sendto/sendto01.c
> index a571afd..e7c8805 100644
> --- a/testcases/kernel/syscalls/sendto/sendto01.c
> +++ b/testcases/kernel/syscalls/sendto/sendto01.c
> @@ -435,7 +435,10 @@ static void setup4(void)
>  {
>  	setup1();
>  
> -	if (tst_kvercmp(3, 6, 0) >= 0) {
> +	if (tst_kvercmp(3, 12, 0) > 0) {
> +		tdat[testno].retval = -1;
> +		tdat[testno].experrno = EISCONN;
> +	} else if (tst_kvercmp(3, 6, 0) >= 0) {
>  		tdat[testno].retval = -1;
>  		tdat[testno].experrno = ENOTSUP;
>  	}
> --
> 1.8.5.rc3
> 
> 
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics
> Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
> _______________________________________________
> Ltp-list mailing list
> Ltp-list@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ltp-list
> 

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

       reply	other threads:[~2013-11-29  9:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1385629988-12052-1-git-send-email-gaowanlong@cn.fujitsu.com>
2013-11-29  9:10 ` Jan Stancek [this message]
2013-11-29  9:17   ` [LTP] [PATCH] send*: fix errno of invalid flags Wanlong Gao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1052444498.3195483.1385716244006.JavaMail.root@redhat.com \
    --to=jstancek@redhat.com \
    --cc=gaowanlong@cn.fujitsu.com \
    --cc=ltp-list@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox