From: Xiong Zhou <xzhou@redhat.com>
To: ltp-list@lists.sourceforge.net
Subject: [LTP] [PATCH] diotest4/fcntl16: Skip some dio/fcntl cases on NFS
Date: Mon, 11 Aug 2014 02:57:27 -0400 (EDT) [thread overview]
Message-ID: <23710388.18328282.1407740246999.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <2123230838.18328229.1407740231363.JavaMail.zimbra@redhat.com>
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;
@@ -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));
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);
--
1.8.3.1
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
next parent reply other threads:[~2014-08-11 6:57 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 ` Xiong Zhou [this message]
2014-08-11 15:08 ` [LTP] [PATCH] diotest4/fcntl16: Skip some dio/fcntl cases on NFS Stanislav Kholmanskikh
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=23710388.18328282.1407740246999.JavaMail.zimbra@redhat.com \
--to=xzhou@redhat.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.