summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/torture/raw/search.c11
-rw-r--r--source4/torture/smbtorture.c9
-rw-r--r--source4/torture/smbtorture.h22
3 files changed, 40 insertions, 2 deletions
diff --git a/source4/torture/raw/search.c b/source4/torture/raw/search.c
index 3aee7fbdfe..74186e3a5d 100644
--- a/source4/torture/raw/search.c
+++ b/source4/torture/raw/search.c
@@ -711,7 +711,7 @@ static bool test_many_files(struct torture_context *tctx,
if ((search_types[t].cont_type == CONT_RESUME_KEY) &&
(search_types[t].data_level != RAW_SEARCH_DATA_SEARCH) &&
- torture_setting_bool(tctx, "samba3", false)) {
+ !torture_setting_bool(tctx, "resume_key_support", true)) {
torture_comment(tctx,
"SKIP: Continue %s via %s\n",
search_types[t].name, search_types[t].cont_name);
@@ -1122,7 +1122,8 @@ static bool test_many_dirs(struct torture_context *tctx,
goto done;
}
- if (strcmp(file3[i].search.name, file2[i].search.name) != 0) {
+ if (torture_setting_bool(tctx, "rewind_support", true) &&
+ strcmp(file3[i].search.name, file2[i].search.name) != 0) {
printf("(%s) server did not rewind - got '%s' expected '%s'\n",
__location__, file3[i].search.name, file2[i].search.name);
ret = false;
@@ -1273,6 +1274,12 @@ static bool test_ea_list(struct torture_context *tctx,
printf("Testing RAW_SEARCH_EA_LIST level\n");
+ if (!torture_setting_bool(tctx, "search_ea_support", true) ||
+ !torture_setting_bool(tctx, "ea_support", true)) {
+ printf("..skipped per target configuration.\n");
+ return true;
+ }
+
fnum = smbcli_open(cli->tree, BASEDIR "\\file1.txt", O_CREAT|O_RDWR, DENY_NONE);
smbcli_close(cli->tree, fnum);
diff --git a/source4/torture/smbtorture.c b/source4/torture/smbtorture.c
index 9c1304fc16..cb080dfded 100644
--- a/source4/torture/smbtorture.c
+++ b/source4/torture/smbtorture.c
@@ -523,6 +523,7 @@ int main(int argc,char *argv[])
if (strcmp(target, "samba3") == 0) {
lp_set_cmdline(cmdline_lp_ctx, "torture:samba3", "true");
+ lp_set_cmdline(cmdline_lp_ctx, "torture:resume_key_support", "false");
} else if (strcmp(target, "samba4") == 0) {
lp_set_cmdline(cmdline_lp_ctx, "torture:samba4", "true");
} else if (strcmp(target, "winxp") == 0) {
@@ -537,11 +538,17 @@ int main(int argc,char *argv[])
lp_set_cmdline(cmdline_lp_ctx, "torture:win7", "true");
lp_set_cmdline(cmdline_lp_ctx, "torture:cn_max_buffer_size",
"0x00010000");
+ lp_set_cmdline(cmdline_lp_ctx, "torture:resume_key_support", "false");
+ lp_set_cmdline(cmdline_lp_ctx, "torture:rewind_support", "false");
+
+ /* RAW-SEARCH for fails for inexplicable reasons against win7 */
+ lp_set_cmdline(cmdline_lp_ctx, "torture:search_ea_support", "false");
} else if (strcmp(target, "onefs") == 0) {
lp_set_cmdline(cmdline_lp_ctx, "torture:onefs", "true");
lp_set_cmdline(cmdline_lp_ctx, "torture:openx_deny_dos_support",
"false");
lp_set_cmdline(cmdline_lp_ctx, "torture:sacl_support", "false");
+ lp_set_cmdline(cmdline_lp_ctx, "torture:ea_support", "false");
lp_set_cmdline(cmdline_lp_ctx, "torture:smblock_pdu_support",
"false");
lp_set_cmdline(cmdline_lp_ctx, "torture:2_step_break_to_none",
@@ -550,6 +557,8 @@ int main(int argc,char *argv[])
lp_set_cmdline(cmdline_lp_ctx, "torture:deny_fcb_support", "false");
lp_set_cmdline(cmdline_lp_ctx, "torture:read_support", "false");
lp_set_cmdline(cmdline_lp_ctx, "torture:writeclose_support", "false");
+ lp_set_cmdline(cmdline_lp_ctx, "torture:resume_key_support", "false");
+ lp_set_cmdline(cmdline_lp_ctx, "torture:rewind_support", "false");
}
if (max_runtime) {
diff --git a/source4/torture/smbtorture.h b/source4/torture/smbtorture.h
index c7bbcf2d9d..a4f25958a6 100644
--- a/source4/torture/smbtorture.h
+++ b/source4/torture/smbtorture.h
@@ -91,4 +91,26 @@ bool torture_register_suite(struct torture_suite *suite);
* steps rather than 1.
*/
+/* torture:resume_key_support
+ *
+ * Server supports resuming search via key.
+ */
+
+/* torture:rewind_support
+ *
+ * Server supports rewinding during search.
+ */
+
+/* torture:ea_support
+ *
+ * Server supports OS/2 style EAs.
+ */
+
+/* torture:search_ea_support
+ *
+ * Server supports RAW_SEARCH_DATA_EA_LIST - Torture currently
+ * does not interact correctly with win7, this flag disables
+ * the appropriate test.
+ */
+
#endif /* __SMBTORTURE_H__ */