[PATCH pynfs v3 04/26] server41tests: add a test for duplicate GET_DIR_DELEGATION requests
Jeff Layton <[email protected]>
| Newsgroups | gmane.linux.nfs |
|---|---|
| Message-ID | <[email protected]> |
---
nfs4.1/server41tests/st_dir_deleg.py | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/nfs4.1/server41tests/st_dir_deleg.py b/nfs4.1/server41tests/st_dir_deleg.py
index 99768389cfa8..f47d1f6ac053 100644
--- a/nfs4.1/server41tests/st_dir_deleg.py
+++ b/nfs4.1/server41tests/st_dir_deleg.py
@@ -107,3 +107,29 @@ def testDirDelegSimple(t, env):
open_stateid = res.resarray[-2].stateid
file_fh = res.resarray[-1].object
close_file(sess2, file_fh, stateid=open_stateid)
+
+def testDirDelegDuplicate(t, env):
+ """Test that server returns GDD4_UNAVAIL on duplicate GDD4 request
+
+ FLAGS: dirdeleg all
+ CODE: DIRDELEG2
+ """
+ c = env.c1
+ recall = threading.Event()
+ sess1, fh, deleg = _getDirDeleg(t, env, [], recall)
+
+ # get a dir deleg with no notifications
+ ops = [ op.putfh(fh), op.get_dir_delegation(False,
+ nfs4lib.list2bitmap([]),
+ zerotime, zerotime,
+ nfs4lib.list2bitmap([]),
+ nfs4lib.list2bitmap([]))]
+ res = sess1.compound(ops)
+ check(res)
+ nfstatus = res.resarray[-1].gddr_res_non_fatal4.gddrnf_status
+ if (nfstatus != GDD4_UNAVAIL):
+ fail("Server replied to duplicate request with %d" % nfstatus)
+
+ ops = [ op.putfh(fh), op.delegreturn(deleg) ]
+ res = sess1.compound(ops)
+ check(res)
--
2.54.0