my interpretation of rfc3530 expects NFS4ERR_INVAL is owner and owner_group are empty strings. Signed-off-by: Tigran Mkrtchyan <tigran.mkrtchyan@xxxxxxx> --- nfs4.0/servertests/st_setattr.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/nfs4.0/servertests/st_setattr.py b/nfs4.0/servertests/st_setattr.py index b6a398b..b192ece 100644 --- a/nfs4.0/servertests/st_setattr.py +++ b/nfs4.0/servertests/st_setattr.py @@ -701,3 +701,34 @@ def testChangeGranularity(t, env): chattr4 = res.resarray[7].obj_attributes if chattr1 == chattr2 or chattr2 == chattr3 or chattr3 == chattr4: t.fail("consecutive SETATTR(mode)'s don't all change change attribute") + +def testEmptyPrincipal(t, env): + """Setting owner with zero length principal must fail + + FLAGS: setattr all + DEPEND: MKFILE + CODE: SATT16 + """ + c = env.c1 + path = c.homedir + [t.code] + res = c.create_obj(path, NF4SOCK) + check(res) + ops = c.use_obj(path) + [c.setattr({FATTR4_OWNER: ''})] + res = c.compound(ops) + check(res, NFS4ERR_INVAL, "Setting empty owner") + + +def testEmptyGroupPrincipal(t, env): + """Setting owner group with zero length principal must fail + + FLAGS: setattr all + DEPEND: MKFILE + CODE: SATT17 + """ + c = env.c1 + path = c.homedir + [t.code] + res = c.create_obj(path, NF4SOCK) + check(res) + ops = c.use_obj(path) + [c.setattr({FATTR4_OWNER_GROUP: ''})] + res = c.compound(ops) + check(res, NFS4ERR_INVAL, "Setting empty owner_group") -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html