summaryrefslogtreecommitdiff
path: root/source4/torture/basic
diff options
context:
space:
mode:
authorSteven Danneman <steven.danneman@isilon.com>2009-10-02 17:02:20 -0700
committerSteven Danneman <steven.danneman@isilon.com>2009-10-06 19:43:15 -0700
commit26b77348414fc99ec0a07cb5376942d722ddf643 (patch)
treee112f7ee9d7bf203abd506cbc5b1b07f32309117 /source4/torture/basic
parente9c3318e52ca41a3f40a9fe8803f882e4142a2db (diff)
downloadsamba-26b77348414fc99ec0a07cb5376942d722ddf643.tar.gz
samba-26b77348414fc99ec0a07cb5376942d722ddf643.tar.bz2
samba-26b77348414fc99ec0a07cb5376942d722ddf643.zip
s4/torture: Add server target of OneFS
I've added a "--target=onefs" which lists expected deviation in the OneFS SMB server implementation compared to a Windows machine. I've added this in a generic way using a list of module specific parameters. This list currently only contains the absence of SACL support but will be added to as additional server differences are defined. I'd liked to use this abstraction for defining the differences between a WinXP and Win7 server as well.
Diffstat (limited to 'source4/torture/basic')
-rw-r--r--source4/torture/basic/denytest.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/source4/torture/basic/denytest.c b/source4/torture/basic/denytest.c
index b19f92239a..0802896d7a 100644
--- a/source4/torture/basic/denytest.c
+++ b/source4/torture/basic/denytest.c
@@ -2302,6 +2302,12 @@ static bool torture_createx_specific(struct torture_context *tctx, struct
destroy_func = smbcli_unlink;
}
+ /* Skip all SACL related tests. */
+ if ((!torture_setting_bool(tctx, "sacl_support", true)) &&
+ ((cxd->cxd_access1 & SEC_FLAG_SYSTEM_SECURITY) ||
+ (cxd->cxd_access2 & SEC_FLAG_SYSTEM_SECURITY)))
+ goto done;
+
if (cxd->cxd_flags & CXD_FLAGS_MAKE_BEFORE_CREATEX) {
ret = make_func(tctx, cli->tree, mem_ctx, fname);
if (!ret) {
@@ -2451,6 +2457,9 @@ bool torture_createx_sharemodes(struct torture_context *tctx,
if (!mem_ctx)
return false;
+ if (!torture_setting_bool(tctx, "sacl_support", true))
+ torture_warning(tctx, "Skipping SACL related tests!\n");
+
cxd.cxd_test = extended ? CXD_TEST_CREATEX_SHAREMODE_EXTENDED :
CXD_TEST_CREATEX_SHAREMODE;
cxd.cxd_flags = dir ? CXD_FLAGS_DIRECTORY: 0;
@@ -2541,6 +2550,9 @@ bool torture_createx_access(struct torture_context *tctx,
if (!mem_ctx)
return false;
+ if (!torture_setting_bool(tctx, "sacl_support", true))
+ torture_warning(tctx, "Skipping SACL related tests!\n");
+
cxd.cxd_test = CXD_TEST_CREATEX_ACCESS;
/* HACK for progress bar: figure out estimated count. */
@@ -2606,6 +2618,9 @@ bool torture_createx_access_exhaustive(struct torture_context *tctx,
if (!mem_ctx)
return false;
+ if (!torture_setting_bool(tctx, "sacl_support", true))
+ torture_warning(tctx, "Skipping SACL related tests!\n");
+
data_file = getenv("CREATEX_DATA");
if (data_file) {
data_file_fd = open(data_file, O_WRONLY|O_CREAT|O_TRUNC, 0666);
@@ -2657,6 +2672,9 @@ bool torture_maximum_allowed(struct torture_context *tctx,
mem_ctx = talloc_init("torture_maximum_allowed");
+ if (!torture_setting_bool(tctx, "sacl_support", true))
+ torture_warning(tctx, "Skipping SACL related tests!\n");
+
sd = security_descriptor_dacl_create(mem_ctx,
0, NULL, NULL,
SID_NT_AUTHENTICATED_USERS,
@@ -2685,6 +2703,11 @@ bool torture_maximum_allowed(struct torture_context *tctx,
for (i = 0; i < 32; i++) {
uint32_t mask = SEC_FLAG_MAXIMUM_ALLOWED | (1u << i);
+ /* Skip all SACL related tests. */
+ if ((!torture_setting_bool(tctx, "sacl_support", true)) &&
+ (mask & SEC_FLAG_SYSTEM_SECURITY))
+ continue;
+
memset(&io, 0, sizeof(io));
io.generic.level = RAW_OPEN_NTTRANS_CREATE;
io.ntcreatex.in.access_mask = mask;