Message ID | 165756921593.2281287.10609723157095539123.stgit@morisot.1015granger.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1] Add basic tests for DESTROY_SESSION | expand |
Applying, thanks.--b. On Mon, Jul 11, 2022 at 03:55:32PM -0400, Chuck Lever wrote: > The existing DSESS tests seem specific to Ganesha; they fail when > run against Linux NFSD. Here's a basic one that all server > implementations should PASS. > > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> > --- > nfs4.1/server41tests/st_destroy_session.py | 23 ++++++++++++++++++++++- > 1 file changed, 22 insertions(+), 1 deletion(-) > > diff --git a/nfs4.1/server41tests/st_destroy_session.py b/nfs4.1/server41tests/st_destroy_session.py > index b8be62582366..bd5e12d7ebf1 100644 > --- a/nfs4.1/server41tests/st_destroy_session.py > +++ b/nfs4.1/server41tests/st_destroy_session.py > @@ -1,12 +1,33 @@ > from .st_create_session import create_session > from xdrdef.nfs4_const import * > -from .environment import check, fail, create_file, open_file > +from .environment import check, fail, create_file, open_file, close_file > from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 > import nfs_ops > op = nfs_ops.NFS4ops() > import threading > import rpc.rpc as rpc > > +def testDestroyBasic(t, env): > + """Operations after DESTROY_SESSION should fail with BADSESSION > + > + FLAGS: destroy_session all > + CODE: DSESS1 > + """ > + c = env.c1.new_client(env.testname(t)) > + sess1 = c.create_session() > + sess1.compound([op.reclaim_complete(FALSE)]) > + res = c.c.compound([op.destroy_session(sess1.sessionid)]) > + res = create_file(sess1, env.testname(t), > + access=OPEN4_SHARE_ACCESS_READ) > + check(res, NFS4ERR_BADSESSION) > + sess2 = c.create_session() > + res = create_file(sess2, env.testname(t), > + access=OPEN4_SHARE_ACCESS_READ) > + check(res) > + fh = res.resarray[-1].object > + open_stateid = res.resarray[-2].stateid > + close_file(sess2, fh, stateid=open_stateid) > + > def testDestroy(t, env): > """ > - create a session >
diff --git a/nfs4.1/server41tests/st_destroy_session.py b/nfs4.1/server41tests/st_destroy_session.py index b8be62582366..bd5e12d7ebf1 100644 --- a/nfs4.1/server41tests/st_destroy_session.py +++ b/nfs4.1/server41tests/st_destroy_session.py @@ -1,12 +1,33 @@ from .st_create_session import create_session from xdrdef.nfs4_const import * -from .environment import check, fail, create_file, open_file +from .environment import check, fail, create_file, open_file, close_file from xdrdef.nfs4_type import open_owner4, openflag4, createhow4, open_claim4 import nfs_ops op = nfs_ops.NFS4ops() import threading import rpc.rpc as rpc +def testDestroyBasic(t, env): + """Operations after DESTROY_SESSION should fail with BADSESSION + + FLAGS: destroy_session all + CODE: DSESS1 + """ + c = env.c1.new_client(env.testname(t)) + sess1 = c.create_session() + sess1.compound([op.reclaim_complete(FALSE)]) + res = c.c.compound([op.destroy_session(sess1.sessionid)]) + res = create_file(sess1, env.testname(t), + access=OPEN4_SHARE_ACCESS_READ) + check(res, NFS4ERR_BADSESSION) + sess2 = c.create_session() + res = create_file(sess2, env.testname(t), + access=OPEN4_SHARE_ACCESS_READ) + check(res) + fh = res.resarray[-1].object + open_stateid = res.resarray[-2].stateid + close_file(sess2, fh, stateid=open_stateid) + def testDestroy(t, env): """ - create a session
The existing DSESS tests seem specific to Ganesha; they fail when run against Linux NFSD. Here's a basic one that all server implementations should PASS. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> --- nfs4.1/server41tests/st_destroy_session.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-)