linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mi Jinlong <mijinlong@cn.fujitsu.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: NFS <linux-nfs@vger.kernel.org>
Subject: [PATCH 17/17] CLNT: test EXCLUSIVE4_1 for different verifier
Date: Wed, 02 Mar 2011 14:37:13 +0800	[thread overview]
Message-ID: <4D6DE599.3080600@cn.fujitsu.com> (raw)
In-Reply-To: <4D6DE26C.3010103@cn.fujitsu.com>

Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
---
 nfs4.1/server41tests/environment.py |    5 +++--
 nfs4.1/server41tests/st_open.py     |   18 ++++++++++++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/nfs4.1/server41tests/environment.py b/nfs4.1/server41tests/environment.py
index e961082..b8e2508 100644
--- a/nfs4.1/server41tests/environment.py
+++ b/nfs4.1/server41tests/environment.py
@@ -458,13 +458,14 @@ def create_file(sess, owner, path=None, attrs={FATTR4_MODE: 0644},
     else:
         dir = path[:-1]
         name = path[-1]
-    if (mode==EXCLUSIVE4) and (verifier==None):
+    if ((mode==EXCLUSIVE4) or (mode==EXCLUSIVE4_1)) and (verifier==None):
         verifier = sess.c.verifier
     if not want_deleg and access & OPEN4_SHARE_ACCESS_WANT_DELEG_MASK == 0:
         access |= OPEN4_SHARE_ACCESS_WANT_NO_DELEG
     # Create the file
     open_op = op.open(seqid, access, deny, open_owner4(clientid, owner),
-                      openflag4(OPEN4_CREATE, createhow4(mode, attrs, verifier)),
+                      openflag4(OPEN4_CREATE, createhow4(mode, attrs, verifier,
+                                               creatverfattr(verifier, attrs))),
                       open_claim4(CLAIM_NULL, name))
     return sess.compound(use_obj(dir) + [open_op, op.getfh()])
 
diff --git a/nfs4.1/server41tests/st_open.py b/nfs4.1/server41tests/st_open.py
index d5900db..5d8b6b2 100644
--- a/nfs4.1/server41tests/st_open.py
+++ b/nfs4.1/server41tests/st_open.py
@@ -2,6 +2,7 @@ from st_create_session import create_session
 from nfs4_const import *
 from environment import check, checklist, fail, create_file, open_file
 from nfs4_type import open_owner4, openflag4, createhow4, open_claim4
+from nfs4_type import creatverfattr, fattr4
 import nfs4_ops as op
 import threading
 
@@ -201,3 +202,20 @@ def testReadWrite(t, env):
     if res.resarray[-1].data != desired:
         fail("Expected %r, got %r" % (desired, res.resarray[-1].data))
 
+def testEXCLUSIVE4AtNameAttribute(t, env):
+    """If the file does exist,but the stored verifier does not match,
+       then an error of NFS4ERR_EXIST is returned from server. 
+       rfc5661 18.16.3
+
+    FLAGS: open all
+    CODE: OPEN6
+    """
+    c1 = env.c1.new_client(env.testname(t))
+    sess1 = c1.create_session()
+
+    res = create_file(sess1, env.testname(t), mode=EXCLUSIVE4_1)
+    check(res)
+
+    res = create_file(sess1, env.testname(t), mode=EXCLUSIVE4_1,
+                        verifier = "Justtest")
+    check(res, NFS4ERR_EXIST)
-- 
1.7.4.1




  parent reply	other threads:[~2011-03-02  6:36 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-02  6:23 [PATCH 00/17] add some test case for pynfs41 Mi Jinlong
2011-03-02  6:26 ` [PATCH 01/17] CLNT: check NFS4ERR_NOT_ONLY_OP for CREATE_SESSION Mi Jinlong
2011-03-03  5:57   ` J. Bruce Fields
2011-03-02  6:27 ` [PATCH 02/17] CLNT: test lease period of unconfirmed record Mi Jinlong
2011-03-02  6:28   ` [PATCH 03/17] CLNT: check the csr_sequence at CREATE_SESSION Mi Jinlong
2011-03-03  6:02   ` [PATCH 02/17] CLNT: test lease period of unconfirmed record J. Bruce Fields
2011-03-03  9:07     ` Mi Jinlong
2011-03-09  1:29       ` J. Bruce Fields
2011-03-09  1:43         ` Mi Jinlong
2011-03-02  6:29 ` [PATCH 04/17] CLNT: test with ca_maxresponsesize is too small Mi Jinlong
2011-03-02  6:29 ` [PATCH 05/17] CLNT: test reply too big Mi Jinlong
2011-03-02  6:30 ` [PATCH 06/17] CLNT: test reply too big to cache Mi Jinlong
2011-03-02  6:31 ` [PATCH 07/17] CLNT: test operation not in session Mi Jinlong
2011-03-02  6:31 ` [PATCH 08/17] CLNT: test the sessionid, slotid and sequenceid for SEQUENCE Mi Jinlong
2011-03-02  6:32 ` [PATCH 09/17] CLNT: test Bad Sequenceid At Slot Mi Jinlong
2011-03-02  6:33 ` [PATCH 10/17] CLNT: test resues slot ID Mi Jinlong
2011-03-03  6:14   ` J. Bruce Fields
2011-03-03  9:11     ` Mi Jinlong
2011-03-03 14:51       ` J. Bruce Fields
2011-03-04  9:06       ` Mi Jinlong
2011-03-14 18:41         ` J. Bruce Fields
2011-03-14 19:24           ` J. Bruce Fields
2011-03-15  2:47             ` Mi Jinlong
2011-03-17 22:52               ` J. Bruce Fields
2011-03-22  9:44                 ` Mi Jinlong
2011-03-22 21:48                   ` J. Bruce Fields
2011-03-23  9:41                     ` Mi Jinlong
2011-03-02  6:33 ` [PATCH 11/17] CLNT: DESTROY_SESSION not the fianl operation Mi Jinlong
2011-03-02  6:34 ` [PATCH 12/17] CLNT: test DESTROY_SESSION not the sole operation Mi Jinlong
2011-03-02  6:34 ` [PATCH 13/17] CLNT: add a simple test about RECLAIM_COMPLETE Mi Jinlong
2011-03-02  6:35 ` [PATCH 14/17] CLNT: test reclaim after RECLAIM_COMPLETE Mi Jinlong
2011-03-02  6:36 ` [PATCH 15/17] CLNT: test lock before RECLAIM_COMPLETE Mi Jinlong
2011-03-14 19:27   ` J. Bruce Fields
2011-03-15  3:06     ` Mi Jinlong
2011-03-17 22:54       ` J. Bruce Fields
2011-03-02  6:36 ` [PATCH 16/17] CLNT: test double RECLAIM_COMPLETE after create session Mi Jinlong
2011-03-02  6:37 ` Mi Jinlong [this message]
2011-03-03  5:56 ` [PATCH 00/17] add some test case for pynfs41 J. Bruce Fields
2011-03-28  8:50 ` [PATCH 0/5] a pynfs41 problem and some tests about RECLAIM_COMPLETE Mi Jinlong
2011-03-28  8:57   ` [PATCH 1/5] CLNT: try to destroy session after test complete Mi Jinlong
2011-04-19 15:20     ` J. Bruce Fields
2011-04-20  9:33       ` Mi Jinlong
2011-03-28  8:59   ` [PATCH v2 2/5] CLNT: add a simple test about RECLAIM_COMPLETE Mi Jinlong
2011-03-28  8:59   ` [PATCH v2 3/5] CLNT: test reclaim after RECLAIM_COMPLETE Mi Jinlong
2011-04-19 22:49     ` J. Bruce Fields
2011-03-28  9:00   ` [PATCH v2 4/5] CLNT: test lock before RECLAIM_COMPLETE Mi Jinlong
2011-03-28  9:00   ` [PATCH v2 5/5] CLNT: test double RECLAIM_COMPLETE after create session Mi Jinlong
2011-04-19 22:51   ` [PATCH 0/5] a pynfs41 problem and some tests about RECLAIM_COMPLETE J. Bruce Fields

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=4D6DE599.3080600@cn.fujitsu.com \
    --to=mijinlong@cn.fujitsu.com \
    --cc=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).