All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
To: ltp-list@lists.sourceforge.net
Subject: Re: [LTP] [PATCH] diotest4/fcntl16: Skip some dio/fcntl cases on NFS
Date: Mon, 11 Aug 2014 19:08:34 +0400	[thread overview]
Message-ID: <53E8DC72.40000@oracle.com> (raw)
In-Reply-To: <23710388.18328282.1407740246999.JavaMail.zimbra@redhat.com>

Hi!

On 08/11/2014 10:57 AM, Xiong Zhou wrote:
> According to description of NFS and directIO in open(2), especially
> "The Linux NFS client places no alignment restrictions on
> O_DIRECT I/O", ignore some FAILs in diotest4.
>
> According to nfs(5), NLM supports advisory file locks only. So skip
> fcntl16 test if NFS.
>
> Signed-off-by: Xiong Zhou <xzhou@redhat.com>
> ---
>   testcases/kernel/io/direct_io/diotest4.c  | 14 ++++++++++----
>   testcases/kernel/syscalls/fcntl/fcntl16.c |  8 ++++++++
>   2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git a/testcases/kernel/io/direct_io/diotest4.c b/testcases/kernel/io/direct_io/diotest4.c
> index 10281bf..506e34c 100644
> --- a/testcases/kernel/io/direct_io/diotest4.c
> +++ b/testcases/kernel/io/direct_io/diotest4.c
> @@ -71,9 +71,11 @@
>
>   #include "test.h"
>   #include "usctest.h"
> +#include "tst_fs_type.h"
>
>   char *TCID = "diotest4";	/* Test program identifier.    */
>   int TST_TOTAL = 17;		/* Total number of test conditions */
> +int NO_NFS = 1;			/* Test on NFS or not */
>
>   #ifdef O_DIRECT
>
> @@ -106,7 +108,7 @@ runtest_f(int fd, char *buf, int offset, int count, int errnum, int testnum,
>   		}
>   	} else {
>   		ret = read(fd, buf, count);
> -		if (ret >= 0 || errno != errnum) {
> +		if ((ret >= 0 || errno != errnum) && NO_NFS) {
>   			tst_resm(TFAIL, "read allows %s. returns %d: %s",
>   				 msg, ret, strerror(errno));
>   			l_fail = TRUE;
> @@ -120,7 +122,7 @@ runtest_f(int fd, char *buf, int offset, int count, int errnum, int testnum,
>   		}
>   	} else {
>   		ret = write(fd, buf, count);
> -		if (ret >= 0 || errno != errnum) {
> +		if ((ret >= 0 || errno != errnum) && NO_NFS) {
>   			tst_resm(TFAIL, "write allows %s.returns %d: %s",
>   				 msg, ret, strerror(errno));
>   			l_fail = TRUE;

You are modifying runtest_f() which is invoked in multiple test scenarios.
I suppose that not all the test cases should be excluded from the 
execution on NFS. For example, "negative fd".

I think we should disable only ones which don't work with NFS.

> @@ -206,6 +208,10 @@ int main(int argc, char *argv[])
>
>   	setup();
>
> +	/* On NFS or not */
> +	if (tst_fs_type(cleanup, ".") == TST_NFS_MAGIC)
> +		NO_NFS = 0;
> +
>   	/* Open file and fill, allocate for buffer */
>   	if ((fd = open(filename, O_DIRECT | O_RDWR | O_CREAT, 0666)) < 0) {
>   		tst_brkm(TBROK, cleanup, "open failed for %s: %s",
> @@ -459,7 +465,7 @@ int main(int argc, char *argv[])
>   			 strerror(errno));
>   		l_fail = TRUE;
>   	} else {
> -		if ((ret = read(fd, buf2 + 1, count)) != -1) {
> +		if (((ret = read(fd, buf2 + 1, count)) != -1) && NO_NFS) {
>   			tst_resm(TFAIL,
>   				 "allows read nonaligned buf. returns %d: %s",
>   				 ret, strerror(errno));
> @@ -471,7 +477,7 @@ int main(int argc, char *argv[])
>   			 strerror(errno));
>   		l_fail = TRUE;
>   	} else {
> -		if ((ret = write(fd, buf2 + 1, count)) != -1) {
> +		if (((ret = write(fd, buf2 + 1, count)) != -1) && NO_NFS) {
>   			tst_resm(TFAIL,
>   				 "allows write nonaligned buf. returns %d: %s",
>   				 ret, strerror(errno));


Hmm. diotest4.c has many duplicated parts of code like 'open(O_DIRECT)' 
and tests like 'if (l_fail)' and 'if (ret != 0)'.

What do you think about cleaning these things up before doing functional 
changes? :)

Thanks.


> diff --git a/testcases/kernel/syscalls/fcntl/fcntl16.c b/testcases/kernel/syscalls/fcntl/fcntl16.c
> index 44b6a80..7dba6ea 100644
> --- a/testcases/kernel/syscalls/fcntl/fcntl16.c
> +++ b/testcases/kernel/syscalls/fcntl/fcntl16.c
> @@ -51,6 +51,8 @@
>   #include <sys/types.h>
>   #include <sys/wait.h>
>
> +#include "tst_fs_type.h"
> +
>   #define SKIPVAL 0x0f00
>   //#define       SKIP    SKIPVAL, 0, 0L, 0L, IGNORED
>   #define SKIP 0,0,0L,0L,0
> @@ -412,6 +414,12 @@ void setup(void)
>
>   	tst_tmpdir();
>
> +	/* On NFS or not */
> +	if (tst_fs_type(cleanup, ".") == TST_NFS_MAGIC) {
> +		tst_brkm(TCONF, cleanup, "Cannot test madatory locking "
> +			"on a file located on an NFS filesystem");
> +	}
> +
>   	/* set up temp filename */
>   	sprintf(tmpname, "fcntl4.%d", parent);
>
>

------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

      reply	other threads:[~2014-08-11 15:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2123230838.18328229.1407740231363.JavaMail.zimbra@redhat.com>
2014-08-11  6:57 ` [LTP] [PATCH] diotest4/fcntl16: Skip some dio/fcntl cases on NFS Xiong Zhou
2014-08-11 15:08   ` Stanislav Kholmanskikh [this message]

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=53E8DC72.40000@oracle.com \
    --to=stanislav.kholmanskikh@oracle.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.