summaryrefslogtreecommitdiff
path: root/source4/torture/raw
diff options
context:
space:
mode:
Diffstat (limited to 'source4/torture/raw')
-rw-r--r--source4/torture/raw/acls.c28
-rw-r--r--source4/torture/raw/chkpath.c21
-rw-r--r--source4/torture/raw/close.c45
-rw-r--r--source4/torture/raw/composite.c23
-rw-r--r--source4/torture/raw/context.c35
-rw-r--r--source4/torture/raw/eas.c16
-rw-r--r--source4/torture/raw/ioctl.c24
-rw-r--r--source4/torture/raw/lock.c56
-rw-r--r--source4/torture/raw/mkdir.c19
-rw-r--r--source4/torture/raw/mux.c30
-rw-r--r--source4/torture/raw/notify.c44
-rw-r--r--source4/torture/raw/open.c38
-rw-r--r--source4/torture/raw/oplock.c4
-rw-r--r--source4/torture/raw/qfileinfo.c48
-rw-r--r--source4/torture/raw/qfsinfo.c19
-rw-r--r--source4/torture/raw/raw.c53
-rw-r--r--source4/torture/raw/read.c56
-rw-r--r--source4/torture/raw/rename.c55
-rw-r--r--source4/torture/raw/search.c151
-rw-r--r--source4/torture/raw/seek.c18
-rw-r--r--source4/torture/raw/setfileinfo.c78
-rw-r--r--source4/torture/raw/streams.c15
-rw-r--r--source4/torture/raw/unlink.c46
-rw-r--r--source4/torture/raw/write.c48
24 files changed, 366 insertions, 604 deletions
diff --git a/source4/torture/raw/acls.c b/source4/torture/raw/acls.c
index bad98178d7..c22c9be7de 100644
--- a/source4/torture/raw/acls.c
+++ b/source4/torture/raw/acls.c
@@ -1726,35 +1726,25 @@ done:
/*
basic testing of security descriptor calls
*/
-BOOL torture_raw_acls(struct torture_context *torture)
+bool torture_raw_acls(struct torture_context *tctx, struct smbcli_state *cli)
{
- struct smbcli_state *cli;
BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_acls");
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
}
- ret &= test_sd(cli, mem_ctx);
- ret &= test_nttrans_create(cli, mem_ctx);
- ret &= test_creator_sid(cli, mem_ctx);
- ret &= test_generic_bits(cli, mem_ctx);
- ret &= test_owner_bits(cli, mem_ctx);
- ret &= test_inheritance(cli, mem_ctx);
- ret &= test_inheritance_dynamic(cli, mem_ctx);
- ret &= test_sd_get_set(cli, mem_ctx);
+ ret &= test_sd(cli, tctx);
+ ret &= test_nttrans_create(cli, tctx);
+ ret &= test_creator_sid(cli, tctx);
+ ret &= test_generic_bits(cli, tctx);
+ ret &= test_owner_bits(cli, tctx);
+ ret &= test_inheritance(cli, tctx);
+ ret &= test_inheritance_dynamic(cli, tctx);
+ ret &= test_sd_get_set(cli, tctx);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/chkpath.c b/source4/torture/raw/chkpath.c
index 9914fdacca..a56afee546 100644
--- a/source4/torture/raw/chkpath.c
+++ b/source4/torture/raw/chkpath.c
@@ -214,18 +214,11 @@ done:
/*
basic testing of chkpath calls
*/
-BOOL torture_raw_chkpath(struct torture_context *torture)
+bool torture_raw_chkpath(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
+ bool ret = true;
int fnum;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_chkpath");
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -246,23 +239,19 @@ BOOL torture_raw_chkpath(struct torture_context *torture)
return False;
}
- fnum = create_complex_file(cli, mem_ctx, BASEDIR "\\nt\\V S\\VB98\\vb6.exe");
+ fnum = create_complex_file(cli, torture, BASEDIR "\\nt\\V S\\VB98\\vb6.exe");
if (fnum == -1) {
printf("failed to open \\nt\\V S\\VB98\\vb6.exe - %s\n", smbcli_errstr(cli->tree));
ret = False;
goto done;
}
- if (!test_chkpath(cli, mem_ctx)) {
- ret = False;
- }
+ ret &= test_chkpath(cli, torture);
done:
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/close.c b/source4/torture/raw/close.c
index 6af234e4b4..34ac2f0db8 100644
--- a/source4/torture/raw/close.c
+++ b/source4/torture/raw/close.c
@@ -24,14 +24,13 @@
#include "libcli/libcli.h"
#include "torture/util.h"
-
-/* basic testing of all RAW_CLOSE_* calls
+/**
+ * basic testing of all RAW_CLOSE_* calls
*/
-BOOL torture_raw_close(struct torture_context *torture)
+bool torture_raw_close(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
+ bool ret = true;
union smb_close io;
union smb_flush io_flush;
int fnum;
@@ -40,17 +39,11 @@ BOOL torture_raw_close(struct torture_context *torture)
union smb_fileinfo finfo, finfo2;
NTSTATUS status;
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_close");
-
#define REOPEN do { \
- fnum = create_complex_file(cli, mem_ctx, fname); \
+ fnum = create_complex_file(cli, torture, fname); \
if (fnum == -1) { \
printf("(%d) Failed to create %s\n", __LINE__, fname); \
- ret = False; \
+ ret = false; \
goto done; \
}} while (0)
@@ -58,7 +51,7 @@ BOOL torture_raw_close(struct torture_context *torture)
if (!NT_STATUS_EQUAL(status, correct)) { \
printf("(%d) Incorrect status %s - should be %s\n", \
__LINE__, nt_errstr(status), nt_errstr(correct)); \
- ret = False; \
+ ret = false; \
goto done; \
}} while (0)
@@ -78,15 +71,15 @@ BOOL torture_raw_close(struct torture_context *torture)
/* the file should have the write time set */
finfo.generic.level = RAW_FILEINFO_ALL_INFO;
finfo.generic.in.file.path = fname;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, torture, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
if (basetime != nt_time_to_unix(finfo.all_info.out.write_time)) {
printf("Incorrect write time on file - %s - %s\n",
- timestring(mem_ctx, basetime),
- nt_time_string(mem_ctx, finfo.all_info.out.write_time));
- dump_all_info(mem_ctx, &finfo);
- ret = False;
+ timestring(torture, basetime),
+ nt_time_string(torture, finfo.all_info.out.write_time));
+ dump_all_info(torture, &finfo);
+ ret = false;
}
printf("testing other times\n");
@@ -99,7 +92,7 @@ BOOL torture_raw_close(struct torture_context *torture)
nt_time_equal(&finfo.all_info.out.write_time,
&finfo.all_info.out.change_time)) {
printf("Incorrect times after close - only write time should be set\n");
- dump_all_info(mem_ctx, &finfo);
+ dump_all_info(torture, &finfo);
if (!torture_setting_bool(torture, "samba3", false)) {
/*
@@ -117,7 +110,7 @@ BOOL torture_raw_close(struct torture_context *torture)
finfo2.generic.level = RAW_FILEINFO_ALL_INFO;
finfo2.generic.in.file.path = fname;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo2);
+ status = smb_raw_pathinfo(cli->tree, torture, &finfo2);
CHECK_STATUS(status, NT_STATUS_OK);
io.close.level = RAW_CLOSE_CLOSE;
@@ -129,14 +122,14 @@ BOOL torture_raw_close(struct torture_context *torture)
/* the file should have the write time set equal to access time */
finfo.generic.level = RAW_FILEINFO_ALL_INFO;
finfo.generic.in.file.path = fname;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, torture, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
if (!nt_time_equal(&finfo.all_info.out.write_time,
&finfo2.all_info.out.write_time)) {
printf("Incorrect write time on file - 0 time should be ignored\n");
- dump_all_info(mem_ctx, &finfo);
- ret = False;
+ dump_all_info(torture, &finfo);
+ ret = false;
}
printf("testing splclose\n");
@@ -179,7 +172,5 @@ BOOL torture_raw_close(struct torture_context *torture)
done:
smbcli_close(cli->tree, fnum);
smbcli_unlink(cli->tree, fname);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/composite.c b/source4/torture/raw/composite.c
index 0b7644dd03..374ff3cb98 100644
--- a/source4/torture/raw/composite.c
+++ b/source4/torture/raw/composite.c
@@ -399,31 +399,22 @@ static BOOL test_fsinfo(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
/*
basic testing of libcli composite calls
*/
-BOOL torture_raw_composite(struct torture_context *torture)
+bool torture_raw_composite(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_composite");
+ bool ret = true;
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
}
- ret &= test_fetchfile(cli, mem_ctx);
- ret &= test_loadfile(cli, mem_ctx);
- ret &= test_appendacl(cli, mem_ctx);
- ret &= test_fsinfo(cli, mem_ctx);
+ ret &= test_fetchfile(cli, tctx);
+ ret &= test_loadfile(cli, tctx);
+ ret &= test_appendacl(cli, tctx);
+ ret &= test_fsinfo(cli, tctx);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/context.c b/source4/torture/raw/context.c
index 8f3695d0dc..df7f5f3851 100644
--- a/source4/torture/raw/context.c
+++ b/source4/torture/raw/context.c
@@ -865,45 +865,36 @@ done:
/*
basic testing of session/tree context calls
*/
-static BOOL torture_raw_context_int(void)
+static bool torture_raw_context_int(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
BOOL ret = True;
- TALLOC_CTX *mem_ctx;
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_context");
-
- ret &= test_session(cli, mem_ctx);
- ret &= test_tree(cli, mem_ctx);
- ret &= test_tree_ulogoff(cli, mem_ctx);
- ret &= test_pid_exit_only_sees_open(cli, mem_ctx);
- ret &= test_pid_2sess(cli, mem_ctx);
- ret &= test_pid_2tcon(cli, mem_ctx);
+ ret &= test_session(cli, tctx);
+ ret &= test_tree(cli, tctx);
+ ret &= test_tree_ulogoff(cli, tctx);
+ ret &= test_pid_exit_only_sees_open(cli, tctx);
+ ret &= test_pid_2sess(cli, tctx);
+ ret &= test_pid_2tcon(cli, tctx);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
-
return ret;
}
/*
basic testing of session/tree context calls
*/
-BOOL torture_raw_context(struct torture_context *torture)
+bool torture_raw_context(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- BOOL ret = True;
+ bool ret = true;
if (lp_use_spnego()) {
- ret &= torture_raw_context_int();
+ ret &= torture_raw_context_int(torture, cli);
lp_set_cmdline("use spnego", "False");
}
- ret &= torture_raw_context_int();
+ ret &= torture_raw_context_int(torture, cli);
return ret;
}
diff --git a/source4/torture/raw/eas.c b/source4/torture/raw/eas.c
index 226c4f6052..7e9c742943 100644
--- a/source4/torture/raw/eas.c
+++ b/source4/torture/raw/eas.c
@@ -444,29 +444,19 @@ done:
/*
basic testing of EA calls
*/
-BOOL torture_raw_eas(struct torture_context *torture)
+bool torture_raw_eas(struct torture_context *torture, struct smbcli_state *cli)
{
- struct smbcli_state *cli;
BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_eas");
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
}
- ret &= test_eas(cli, mem_ctx);
- ret &= test_nttrans_create(cli, mem_ctx);
+ ret &= test_eas(cli, torture);
+ ret &= test_nttrans_create(cli, torture);
smb_raw_exit(cli->session);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/ioctl.c b/source4/torture/raw/ioctl.c
index 9208d9fa44..8e98822e11 100644
--- a/source4/torture/raw/ioctl.c
+++ b/source4/torture/raw/ioctl.c
@@ -151,34 +151,20 @@ done:
/*
basic testing of some ioctl calls
*/
-BOOL torture_raw_ioctl(struct torture_context *torture)
+bool torture_raw_ioctl(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_ioctl");
+ bool ret = true;
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
}
- if (!test_ioctl(cli, mem_ctx)) {
- ret = False;
- }
-
- if (!test_fsctl(cli, mem_ctx)) {
- ret = False;
- }
+ ret &= test_ioctl(cli, torture);
+ ret &= test_fsctl(cli, torture);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/lock.c b/source4/torture/raw/lock.c
index cfedb4444b..533974c9a9 100644
--- a/source4/torture/raw/lock.c
+++ b/source4/torture/raw/lock.c
@@ -42,7 +42,7 @@
/*
test SMBlock and SMBunlock ops
*/
-static BOOL test_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli)
{
union smb_lock io;
NTSTATUS status;
@@ -177,7 +177,7 @@ done:
/*
test locking&X ops
*/
-static BOOL test_lockx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli)
{
union smb_lock io;
struct smb_lock_entry lock[1];
@@ -356,7 +356,8 @@ done:
/*
test high pid
*/
-static BOOL test_pidhigh(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_pidhigh(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_lock io;
struct smb_lock_entry lock[1];
@@ -437,7 +438,8 @@ done:
/*
test locking&X async operation
*/
-static BOOL test_async(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_async(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
struct smbcli_session *session;
struct smb_composite_sesssetup setup;
@@ -586,7 +588,7 @@ static BOOL test_async(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
}
printf("create a new sessions\n");
- session = smbcli_session_init(cli->transport, mem_ctx, False);
+ session = smbcli_session_init(cli->transport, tctx, False);
setup.in.sesskey = cli->transport->negotiate.sesskey;
setup.in.capabilities = cli->transport->negotiate.capabilities;
setup.in.workgroup = lp_workgroup();
@@ -598,13 +600,13 @@ static BOOL test_async(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("create new tree context\n");
share = lp_parm_string(-1, "torture", "share");
host = lp_parm_string(-1, "torture", "host");
- tree = smbcli_tree_init(session, mem_ctx, False);
+ tree = smbcli_tree_init(session, tctx, False);
tcon.generic.level = RAW_TCON_TCONX;
tcon.tconx.in.flags = 0;
tcon.tconx.in.password = data_blob(NULL, 0);
- tcon.tconx.in.path = talloc_asprintf(mem_ctx, "\\\\%s\\%s", host, share);
+ tcon.tconx.in.path = talloc_asprintf(tctx, "\\\\%s\\%s", host, share);
tcon.tconx.in.device = "A:";
- status = smb_raw_tcon(tree, mem_ctx, &tcon);
+ status = smb_raw_tcon(tree, tctx, &tcon);
CHECK_STATUS(status, NT_STATUS_OK);
tree->tid = tcon.tconx.out.tid;
@@ -769,7 +771,8 @@ done:
/*
test NT_STATUS_LOCK_NOT_GRANTED vs. NT_STATUS_FILE_LOCK_CONFLICT
*/
-static BOOL test_errorcode(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_errorcode(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_lock io;
union smb_open op;
@@ -812,11 +815,11 @@ next_run:
op.openx.in.size = 0;
op.openx.in.timeout = 0;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.openx.out.file.fnum;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum2 = op.openx.out.file.fnum;
@@ -1250,7 +1253,8 @@ done:
/*
test LOCKING_ANDX_CHANGE_LOCKTYPE
*/
-static BOOL test_changetype(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_changetype(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_lock io;
struct smb_lock_entry lock[2];
@@ -1315,26 +1319,16 @@ done:
/*
basic testing of lock calls
*/
-BOOL torture_raw_lock(struct torture_context *torture)
+struct torture_suite *torture_raw_lock(TALLOC_CTX *mem_ctx)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_lock");
+ struct torture_suite *suite = torture_suite_create(mem_ctx, "LOCK");
- ret &= test_lockx(cli, mem_ctx);
- ret &= test_lock(cli, mem_ctx);
- ret &= test_pidhigh(cli, mem_ctx);
- ret &= test_async(cli, mem_ctx);
- ret &= test_errorcode(cli, mem_ctx);
- ret &= test_changetype(cli, mem_ctx);
+ torture_suite_add_1smb_test(suite, "lockx", test_lockx);
+ torture_suite_add_1smb_test(suite, "lock", test_lock);
+ torture_suite_add_1smb_test(suite, "pidhigh", test_pidhigh);
+ torture_suite_add_1smb_test(suite, "async", test_async);
+ torture_suite_add_1smb_test(suite, "errorcode", test_errorcode);
+ torture_suite_add_1smb_test(suite, "changetype", test_changetype);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
- return ret;
+ return suite;
}
diff --git a/source4/torture/raw/mkdir.c b/source4/torture/raw/mkdir.c
index 2485fb61e8..0e2fd1afe0 100644
--- a/source4/torture/raw/mkdir.c
+++ b/source4/torture/raw/mkdir.c
@@ -160,23 +160,14 @@ done:
/*
basic testing of all RAW_MKDIR_* calls
*/
-BOOL torture_raw_mkdir(struct torture_context *torture)
+BOOL torture_raw_mkdir(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_mkdir");
+ bool ret = true;
- if (!test_mkdir(cli, mem_ctx)) {
- ret = False;
+ if (!test_mkdir(cli, torture)) {
+ ret = false;
}
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/mux.c b/source4/torture/raw/mux.c
index d61d037239..b67d756ed9 100644
--- a/source4/torture/raw/mux.c
+++ b/source4/torture/raw/mux.c
@@ -342,37 +342,19 @@ done:
/*
basic testing of multiplexing notify
*/
-BOOL torture_raw_mux(struct torture_context *torture)
+bool torture_raw_mux(struct torture_context *torture, struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
+ bool ret = true;
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_mux");
-
if (!torture_setup_dir(cli, BASEDIR)) {
- return False;
- }
-
- if (!test_mux_open(cli, mem_ctx)) {
- ret = False;
- }
-
- if (!test_mux_write(cli, mem_ctx)) {
- ret = False;
+ return false;
}
- if (!test_mux_lock(cli, mem_ctx)) {
- ret = False;
- }
+ ret &= test_mux_open(cli, torture);
+ ret &= test_mux_write(cli, torture);
+ ret &= test_mux_lock(cli, torture);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/notify.c b/source4/torture/raw/notify.c
index 5be1b612d3..1540a4a2dd 100644
--- a/source4/torture/raw/notify.c
+++ b/source4/torture/raw/notify.c
@@ -1283,41 +1283,29 @@ done:
/*
basic testing of change notify
*/
-BOOL torture_raw_notify(struct torture_context *torture)
+bool torture_raw_notify(struct torture_context *torture,
+ struct smbcli_state *cli,
+ struct smbcli_state *cli2)
{
- struct smbcli_state *cli, *cli2;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
+ bool ret = true;
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
- if (!torture_open_connection(&cli2, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_notify");
-
if (!torture_setup_dir(cli, BASEDIR)) {
- return False;
+ return false;
}
- ret &= test_notify_dir(cli, cli2, mem_ctx);
- ret &= test_notify_mask(cli, mem_ctx);
- ret &= test_notify_recursive(cli, mem_ctx);
- ret &= test_notify_mask_change(cli, mem_ctx);
- ret &= test_notify_file(cli, mem_ctx);
- ret &= test_notify_tdis(mem_ctx);
- ret &= test_notify_exit(mem_ctx);
- ret &= test_notify_ulogoff(mem_ctx);
- ret &= test_notify_tcp_dis(mem_ctx);
- ret &= test_notify_double(cli, mem_ctx);
- ret &= test_notify_tree(cli, mem_ctx);
+ ret &= test_notify_dir(cli, cli2, torture);
+ ret &= test_notify_mask(cli, torture);
+ ret &= test_notify_recursive(cli, torture);
+ ret &= test_notify_mask_change(cli, torture);
+ ret &= test_notify_file(cli, torture);
+ ret &= test_notify_tdis(torture);
+ ret &= test_notify_exit(torture);
+ ret &= test_notify_ulogoff(torture);
+ ret &= test_notify_tcp_dis(torture);
+ ret &= test_notify_double(cli, torture);
+ ret &= test_notify_tree(cli, torture);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- torture_close_connection(cli2);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/open.c b/source4/torture/raw/open.c
index 4a4b97f531..f8fa4ff8fe 100644
--- a/source4/torture/raw/open.c
+++ b/source4/torture/raw/open.c
@@ -1459,39 +1459,29 @@ static BOOL test_raw_open_multi(void)
/* basic testing of all RAW_OPEN_* calls
*/
-BOOL torture_raw_open(struct torture_context *torture)
+bool torture_raw_open(struct torture_context *torture, struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_open");
+ bool ret = true;
if (!torture_setup_dir(cli, BASEDIR)) {
- return False;
+ return false;
}
- ret &= test_ntcreatex_brlocked(cli, mem_ctx);
- ret &= test_open(cli, mem_ctx);
+ ret &= test_ntcreatex_brlocked(cli, torture);
+ ret &= test_open(cli, torture);
ret &= test_raw_open_multi();
- ret &= test_openx(cli, mem_ctx);
- ret &= test_ntcreatex(cli, mem_ctx);
- ret &= test_nttrans_create(cli, mem_ctx);
- ret &= test_t2open(cli, mem_ctx);
- ret &= test_mknew(cli, mem_ctx);
- ret &= test_create(cli, mem_ctx);
- ret &= test_ctemp(cli, mem_ctx);
- ret &= test_chained(cli, mem_ctx);
- ret &= test_no_leading_slash(cli, mem_ctx);
+ ret &= test_openx(cli, torture);
+ ret &= test_ntcreatex(cli, torture);
+ ret &= test_nttrans_create(cli, torture);
+ ret &= test_t2open(cli, torture);
+ ret &= test_mknew(cli, torture);
+ ret &= test_create(cli, torture);
+ ret &= test_ctemp(cli, torture);
+ ret &= test_chained(cli, torture);
+ ret &= test_no_leading_slash(cli, torture);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/oplock.c b/source4/torture/raw/oplock.c
index 1d6b22244a..f1779ad9cf 100644
--- a/source4/torture/raw/oplock.c
+++ b/source4/torture/raw/oplock.c
@@ -1282,9 +1282,9 @@ done:
/*
basic testing of oplocks
*/
-struct torture_suite *torture_raw_oplock(void)
+struct torture_suite *torture_raw_oplock(TALLOC_CTX *mem_ctx)
{
- struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "OPLOCK");
+ struct torture_suite *suite = torture_suite_create(mem_ctx, "OPLOCK");
torture_suite_add_2smb_test(suite, "NORMAL", test_raw_oplock_normal);
torture_suite_add_2smb_test(suite, "BATCH1", test_raw_oplock_batch1);
diff --git a/source4/torture/raw/qfileinfo.c b/source4/torture/raw/qfileinfo.c
index 6bcfdcfe09..8cb80cecc1 100644
--- a/source4/torture/raw/qfileinfo.c
+++ b/source4/torture/raw/qfileinfo.c
@@ -222,9 +222,11 @@ static union smb_fileinfo *fname_find(bool is_ipc, const char *name)
for each call we test that it succeeds, and where possible test
for consistency between the calls.
*/
-static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture, TALLOC_CTX *mem_ctx,
- struct smbcli_tree *tree, int fnum, const char *fname,
- bool is_ipc)
+static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
+ TALLOC_CTX *mem_ctx,
+ struct smbcli_tree *tree,
+ int fnum, const char *fname,
+ bool is_ipc)
{
int i;
BOOL ret = True;
@@ -816,56 +818,38 @@ done:
for each call we test that it succeeds, and where possible test
for consistency between the calls.
*/
-BOOL torture_raw_qfileinfo(struct torture_context *torture)
+bool torture_raw_qfileinfo(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
int fnum;
+ bool ret;
const char *fname = "\\torture_qfileinfo.txt";
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_qfileinfo");
-
- fnum = create_complex_file(cli, mem_ctx, fname);
+ fnum = create_complex_file(cli, torture, fname);
if (fnum == -1) {
printf("ERROR: open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
- ret = False;
- goto done;
+ return false;
}
- ret = torture_raw_qfileinfo_internals(torture, mem_ctx, cli->tree, fnum, fname, False /* is_ipc */);
+ ret = torture_raw_qfileinfo_internals(torture, torture, cli->tree, fnum, fname, False /* is_ipc */);
smbcli_close(cli->tree, fnum);
smbcli_unlink(cli->tree, fname);
-done:
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
-BOOL torture_raw_qfileinfo_pipe(struct torture_context *torture)
+bool torture_raw_qfileinfo_pipe(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- TALLOC_CTX *mem_ctx;
- BOOL ret = True;
+ bool ret = true;
int fnum;
const char *fname = "\\lsass";
- struct smbcli_state *cli;
struct dcerpc_pipe *p;
struct smbcli_tree *ipc_tree;
NTSTATUS status;
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_qfileinfo_pipe");
-
- if (!(p = dcerpc_pipe_init(mem_ctx,
+ if (!(p = dcerpc_pipe_init(torture,
cli->tree->session->transport->socket->event.ctx))) {
return False;
}
@@ -881,7 +865,7 @@ BOOL torture_raw_qfileinfo_pipe(struct torture_context *torture)
ipc_tree = dcerpc_smb_tree(p->conn);
fnum = dcerpc_smb_fnum(p->conn);
- ret = torture_raw_qfileinfo_internals(torture, mem_ctx, ipc_tree, fnum, fname, True /* is_ipc */);
+ ret = torture_raw_qfileinfo_internals(torture, torture, ipc_tree, fnum, fname, True /* is_ipc */);
talloc_free(p);
return ret;
diff --git a/source4/torture/raw/qfsinfo.c b/source4/torture/raw/qfsinfo.c
index 982f348cd5..dc09e55b63 100644
--- a/source4/torture/raw/qfsinfo.c
+++ b/source4/torture/raw/qfsinfo.c
@@ -120,26 +120,19 @@ static union smb_fsinfo *find(const char *name)
Some of the consistency tests assume that the target filesystem is
quiescent, which is sometimes hard to achieve
*/
-BOOL torture_raw_qfsinfo(struct torture_context *torture)
+bool torture_raw_qfsinfo(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
int i;
BOOL ret = True;
int count;
union smb_fsinfo *s1, *s2;
- TALLOC_CTX *mem_ctx;
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_qfsinfo");
-
/* scan all the levels, pulling the results */
for (i=0; levels[i].name; i++) {
printf("Running level %s\n", levels[i].name);
levels[i].fsinfo.generic.level = levels[i].level;
- levels[i].status = smb_raw_fsinfo(cli->tree, mem_ctx, &levels[i].fsinfo);
+ levels[i].status = smb_raw_fsinfo(cli->tree, torture, &levels[i].fsinfo);
}
/* check for completely broken levels */
@@ -158,11 +151,10 @@ BOOL torture_raw_qfsinfo(struct torture_context *torture)
}
if (count != 0) {
- ret = False;
printf("%d levels failed\n", count);
if (count > 13) {
printf("too many level failures - giving up\n");
- goto done;
+ return False;
}
}
@@ -303,8 +295,5 @@ BOOL torture_raw_qfsinfo(struct torture_context *torture)
STR_CHECK("ATTRIBUTE_INFO", attribute_info, fs_type, STR_UNICODE);
STR_CHECK("ATTRIBUTE_INFORMATION", attribute_info, fs_type, STR_UNICODE);
-done:
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/raw.c b/source4/torture/raw/raw.c
index 67d79ef78c..85db92661b 100644
--- a/source4/torture/raw/raw.c
+++ b/source4/torture/raw/raw.c
@@ -21,6 +21,7 @@
#include "torture/torture.h"
#include "libcli/raw/libcliraw.h"
#include "torture/raw/proto.h"
+#include "torture/util.h"
NTSTATUS torture_raw_init(void)
{
@@ -31,33 +32,33 @@ NTSTATUS torture_raw_init(void)
torture_suite_add_simple_test(suite, "BENCH-OPLOCK", torture_bench_oplock);
torture_suite_add_simple_test(suite, "BENCH-LOCK", torture_bench_lock);
torture_suite_add_simple_test(suite, "BENCH-OPEN", torture_bench_open);
- torture_suite_add_simple_test(suite, "QFSINFO", torture_raw_qfsinfo);
- torture_suite_add_simple_test(suite, "QFILEINFO", torture_raw_qfileinfo);
- torture_suite_add_simple_test(suite, "QFILEINFO-IPC", torture_raw_qfileinfo_pipe);
- torture_suite_add_simple_test(suite, "SFILEINFO", torture_raw_sfileinfo);
- torture_suite_add_simple_test(suite, "SFILEINFO-BUG", torture_raw_sfileinfo_bug);
- torture_suite_add_simple_test(suite, "SFILEINFO-RENAME",
+ torture_suite_add_1smb_test(suite, "QFSINFO", torture_raw_qfsinfo);
+ torture_suite_add_1smb_test(suite, "QFILEINFO", torture_raw_qfileinfo);
+ torture_suite_add_1smb_test(suite, "QFILEINFO-IPC", torture_raw_qfileinfo_pipe);
+ torture_suite_add_1smb_test(suite, "SFILEINFO", torture_raw_sfileinfo);
+ torture_suite_add_1smb_test(suite, "SFILEINFO-BUG", torture_raw_sfileinfo_bug);
+ torture_suite_add_1smb_test(suite, "SFILEINFO-RENAME",
torture_raw_sfileinfo_rename);
- torture_suite_add_simple_test(suite, "SEARCH", torture_raw_search);
- torture_suite_add_simple_test(suite, "CLOSE", torture_raw_close);
- torture_suite_add_simple_test(suite, "OPEN", torture_raw_open);
- torture_suite_add_simple_test(suite, "MKDIR", torture_raw_mkdir);
- torture_suite_add_suite(suite, torture_raw_oplock());
- torture_suite_add_simple_test(suite, "NOTIFY", torture_raw_notify);
- torture_suite_add_simple_test(suite, "MUX", torture_raw_mux);
- torture_suite_add_simple_test(suite, "IOCTL", torture_raw_ioctl);
- torture_suite_add_simple_test(suite, "CHKPATH", torture_raw_chkpath);
- torture_suite_add_simple_test(suite, "UNLINK", torture_raw_unlink);
- torture_suite_add_simple_test(suite, "READ", torture_raw_read);
- torture_suite_add_simple_test(suite, "WRITE", torture_raw_write);
- torture_suite_add_simple_test(suite, "LOCK", torture_raw_lock);
- torture_suite_add_simple_test(suite, "CONTEXT", torture_raw_context);
- torture_suite_add_simple_test(suite, "RENAME", torture_raw_rename);
- torture_suite_add_simple_test(suite, "SEEK", torture_raw_seek);
- torture_suite_add_simple_test(suite, "EAS", torture_raw_eas);
- torture_suite_add_simple_test(suite, "STREAMS", torture_raw_streams);
- torture_suite_add_simple_test(suite, "ACLS", torture_raw_acls);
- torture_suite_add_simple_test(suite, "COMPOSITE", torture_raw_composite);
+ torture_suite_add_suite(suite, torture_raw_search(suite));
+ torture_suite_add_1smb_test(suite, "CLOSE", torture_raw_close);
+ torture_suite_add_1smb_test(suite, "OPEN", torture_raw_open);
+ torture_suite_add_1smb_test(suite, "MKDIR", torture_raw_mkdir);
+ torture_suite_add_suite(suite, torture_raw_oplock(suite));
+ torture_suite_add_2smb_test(suite, "NOTIFY", torture_raw_notify);
+ torture_suite_add_1smb_test(suite, "MUX", torture_raw_mux);
+ torture_suite_add_1smb_test(suite, "IOCTL", torture_raw_ioctl);
+ torture_suite_add_1smb_test(suite, "CHKPATH", torture_raw_chkpath);
+ torture_suite_add_suite(suite, torture_raw_unlink(suite));
+ torture_suite_add_suite(suite, torture_raw_read(suite));
+ torture_suite_add_suite(suite, torture_raw_write(suite));
+ torture_suite_add_suite(suite, torture_raw_lock(suite));
+ torture_suite_add_1smb_test(suite, "CONTEXT", torture_raw_context);
+ torture_suite_add_suite(suite, torture_raw_rename(suite));
+ torture_suite_add_1smb_test(suite, "SEEK", torture_raw_seek);
+ torture_suite_add_1smb_test(suite, "EAS", torture_raw_eas);
+ torture_suite_add_1smb_test(suite, "STREAMS", torture_raw_streams);
+ torture_suite_add_1smb_test(suite, "ACLS", torture_raw_acls);
+ torture_suite_add_1smb_test(suite, "COMPOSITE", torture_raw_composite);
torture_suite_add_simple_test(suite, "SAMBA3HIDE", torture_samba3_hide);
torture_suite_add_simple_test(suite, "SAMBA3CLOSEERR", torture_samba3_closeerr);
torture_suite_add_simple_test(suite, "SAMBA3CHECKFSP", torture_samba3_checkfsp);
diff --git a/source4/torture/raw/read.c b/source4/torture/raw/read.c
index 95e9d891d9..f1048f25ac 100644
--- a/source4/torture/raw/read.c
+++ b/source4/torture/raw/read.c
@@ -81,7 +81,7 @@ static BOOL check_buffer(uint8_t *buf, uint_t seed, int len, int line)
/*
test read ops
*/
-static BOOL test_read(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_read(struct torture_context *tctx, struct smbcli_state *cli)
{
union smb_read io;
NTSTATUS status;
@@ -93,7 +93,7 @@ static BOOL test_read(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
const char *test_data = "TEST DATA";
uint_t seed = time(NULL);
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -207,7 +207,8 @@ done:
/*
test lockread ops
*/
-static BOOL test_lockread(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_lockread(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_read io;
NTSTATUS status;
@@ -219,7 +220,7 @@ static BOOL test_lockread(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
const char *test_data = "TEST DATA";
uint_t seed = time(NULL);
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -352,7 +353,7 @@ done:
/*
test readx ops
*/
-static BOOL test_readx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
{
union smb_read io;
NTSTATUS status;
@@ -364,7 +365,7 @@ static BOOL test_readx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
const char *test_data = "TEST DATA";
uint_t seed = time(NULL);
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -590,7 +591,8 @@ done:
/*
test readbraw ops
*/
-static BOOL test_readbraw(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_readbraw(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_read io;
NTSTATUS status;
@@ -602,7 +604,7 @@ static BOOL test_readbraw(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
const char *test_data = "TEST DATA";
uint_t seed = time(NULL);
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -762,7 +764,8 @@ done:
/*
test read for execute
*/
-static BOOL test_read_for_execute(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_read_for_execute(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_open op;
union smb_write wr;
@@ -775,7 +778,7 @@ static BOOL test_read_for_execute(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
const char *fname = BASEDIR "\\test.txt";
const uint8_t data[] = "TEST DATA";
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -795,7 +798,7 @@ static BOOL test_read_for_execute(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
op.ntcreatex.in.impersonation = NTCREATEX_IMPERSONATION_ANONYMOUS;
op.ntcreatex.in.security_flags = 0;
op.ntcreatex.in.fname = fname;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.ntcreatex.out.file.fnum;
@@ -826,7 +829,7 @@ static BOOL test_read_for_execute(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
op.ntcreatex.in.impersonation = NTCREATEX_IMPERSONATION_ANONYMOUS;
op.ntcreatex.in.security_flags = 0;
op.ntcreatex.in.fname = fname;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.ntcreatex.out.file.fnum;
@@ -873,7 +876,7 @@ static BOOL test_read_for_execute(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
op.ntcreatex.in.impersonation = NTCREATEX_IMPERSONATION_ANONYMOUS;
op.ntcreatex.in.security_flags = 0;
op.ntcreatex.in.fname = fname;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.ntcreatex.out.file.fnum;
@@ -917,25 +920,16 @@ done:
/*
basic testing of read calls
*/
-BOOL torture_raw_read(struct torture_context *torture)
+struct torture_suite *torture_raw_read(TALLOC_CTX *mem_ctx)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_read");
+ struct torture_suite *suite = torture_suite_create(mem_ctx, "READ");
- ret &= test_read(cli, mem_ctx);
- ret &= test_readx(cli, mem_ctx);
- ret &= test_lockread(cli, mem_ctx);
- ret &= test_readbraw(cli, mem_ctx);
- ret &= test_read_for_execute(cli, mem_ctx);
+ torture_suite_add_1smb_test(suite, "read", test_read);
+ torture_suite_add_1smb_test(suite, "readx", test_readx);
+ torture_suite_add_1smb_test(suite, "lockread", test_lockread);
+ torture_suite_add_1smb_test(suite, "readbraw", test_readbraw);
+ torture_suite_add_1smb_test(suite, "read for execute",
+ test_read_for_execute);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
- return ret;
+ return suite;
}
diff --git a/source4/torture/raw/rename.c b/source4/torture/raw/rename.c
index 6b1eb4392a..05a5320859 100644
--- a/source4/torture/raw/rename.c
+++ b/source4/torture/raw/rename.c
@@ -43,7 +43,8 @@
/*
test SMBmv ops
*/
-static BOOL test_mv(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_mv(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_rename io;
NTSTATUS status;
@@ -78,7 +79,7 @@ static BOOL test_mv(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
op.ntcreatex.in.security_flags = 0;
op.ntcreatex.in.fname = fname1;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.ntcreatex.out.file.fnum;
@@ -98,7 +99,7 @@ static BOOL test_mv(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
NTCREATEX_SHARE_ACCESS_DELETE |
NTCREATEX_SHARE_ACCESS_READ |
NTCREATEX_SHARE_ACCESS_WRITE;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.ntcreatex.out.file.fnum;
@@ -119,7 +120,7 @@ static BOOL test_mv(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
finfo.generic.level = RAW_FILEINFO_ALL_INFO;
finfo.all_info.in.file.path = fname1;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
if (strcmp(finfo.all_info.out.fname.s, Fname1) != 0) {
printf("(%s) Incorrect filename [%s] after case-changing "
@@ -191,7 +192,8 @@ done:
/*
test SMBntrename ops
*/
-static BOOL test_ntrename(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_ntrename(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_rename io;
NTSTATUS status;
@@ -209,7 +211,7 @@ static BOOL test_ntrename(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("Trying simple rename\n");
- fnum = create_complex_file(cli, mem_ctx, fname1);
+ fnum = create_complex_file(cli, tctx, fname1);
io.generic.level = RAW_RENAME_NTRENAME;
io.ntrename.in.old_name = fname1;
@@ -269,13 +271,13 @@ static BOOL test_ntrename(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
finfo.generic.level = RAW_FILEINFO_ALL_INFO;
finfo.generic.in.file.path = fname2;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 2);
CHECK_VALUE(finfo.all_info.out.attrib, FILE_ATTRIBUTE_SYSTEM);
finfo.generic.in.file.path = fname1;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 2);
CHECK_VALUE(finfo.all_info.out.attrib, FILE_ATTRIBUTE_SYSTEM);
@@ -285,7 +287,7 @@ static BOOL test_ntrename(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
smbcli_unlink(cli->tree, fname2);
finfo.generic.in.file.path = fname1;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 1);
CHECK_VALUE(finfo.all_info.out.attrib, FILE_ATTRIBUTE_NORMAL);
@@ -300,14 +302,14 @@ static BOOL test_ntrename(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
finfo.generic.level = RAW_FILEINFO_ALL_INFO;
finfo.generic.in.file.path = fname1;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 1);
CHECK_VALUE(finfo.all_info.out.attrib, FILE_ATTRIBUTE_NORMAL);
finfo.generic.level = RAW_FILEINFO_ALL_INFO;
finfo.generic.in.file.path = fname2;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 1);
CHECK_VALUE(finfo.all_info.out.attrib, FILE_ATTRIBUTE_NORMAL);
@@ -316,13 +318,13 @@ static BOOL test_ntrename(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
finfo.generic.level = RAW_FILEINFO_ALL_INFO;
finfo.generic.in.file.path = fname2;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 1);
CHECK_VALUE(finfo.all_info.out.attrib, FILE_ATTRIBUTE_NORMAL);
finfo.generic.in.file.path = fname1;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 1);
CHECK_VALUE(finfo.all_info.out.attrib, FILE_ATTRIBUTE_SYSTEM);
@@ -332,7 +334,7 @@ static BOOL test_ntrename(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
smbcli_unlink(cli->tree, fname2);
finfo.generic.in.file.path = fname1;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo);
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(finfo.all_info.out.nlink, 1);
@@ -436,27 +438,12 @@ done:
/*
basic testing of rename calls
*/
-BOOL torture_raw_rename(struct torture_context *torture)
+struct torture_suite *torture_raw_rename(TALLOC_CTX *mem_ctx)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
+ struct torture_suite *suite = torture_suite_create(mem_ctx, "RENAME");
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
+ torture_suite_add_1smb_test(suite, "mv", test_mv);
+ torture_suite_add_1smb_test(suite, "ntrename", test_ntrename);
- mem_ctx = talloc_init("torture_raw_rename");
-
- if (!test_mv(cli, mem_ctx)) {
- ret = False;
- }
-
- if (!test_ntrename(cli, mem_ctx)) {
- ret = False;
- }
-
- torture_close_connection(cli);
- talloc_free(mem_ctx);
- return ret;
+ return suite;
}
diff --git a/source4/torture/raw/search.c b/source4/torture/raw/search.c
index cd79b4dd3b..986da474d0 100644
--- a/source4/torture/raw/search.c
+++ b/source4/torture/raw/search.c
@@ -43,7 +43,7 @@ static BOOL single_search_callback(void *private, const union smb_search_data *f
do a single file (non-wildcard) search
*/
_PUBLIC_ NTSTATUS torture_single_search(struct smbcli_state *cli,
- TALLOC_CTX *mem_ctx,
+ TALLOC_CTX *tctx,
const char *pattern,
enum smb_search_level level,
enum smb_search_data_level data_level,
@@ -79,7 +79,7 @@ _PUBLIC_ NTSTATUS torture_single_search(struct smbcli_state *cli,
return NT_STATUS_INVALID_LEVEL;
}
- status = smb_raw_search_first(cli->tree, mem_ctx,
+ status = smb_raw_search_first(cli->tree, tctx,
&io, (void *)data, single_search_callback);
if (NT_STATUS_IS_OK(status) && level == RAW_SEARCH_FFIRST) {
@@ -231,7 +231,8 @@ static union smb_search_data *find(const char *name)
/*
basic testing of all RAW_SEARCH_* calls using a single file
*/
-static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static BOOL test_one_file(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
BOOL ret = True;
int fnum;
@@ -244,7 +245,7 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("Testing one file searches\n");
- fnum = create_complex_file(cli, mem_ctx, fname);
+ fnum = create_complex_file(cli, tctx, fname);
if (fnum == -1) {
printf("ERROR: open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
ret = False;
@@ -258,7 +259,7 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("testing %s\n", levels[i].name);
- levels[i].status = torture_single_search(cli, mem_ctx, fname,
+ levels[i].status = torture_single_search(cli, tctx, fname,
levels[i].level,
levels[i].data_level,
0,
@@ -279,7 +280,7 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
continue;
}
- status = torture_single_search(cli, mem_ctx, fname2,
+ status = torture_single_search(cli, tctx, fname2,
levels[i].level,
levels[i].data_level,
0,
@@ -303,7 +304,7 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
/* get the all_info file into to check against */
all_info.generic.level = RAW_FILEINFO_ALL_INFO;
all_info.generic.in.file.path = fname;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &all_info);
+ status = smb_raw_pathinfo(cli->tree, tctx, &all_info);
if (!NT_STATUS_IS_OK(status)) {
printf("RAW_FILEINFO_ALL_INFO failed - %s\n", nt_errstr(status));
ret = False;
@@ -312,7 +313,7 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
alt_info.generic.level = RAW_FILEINFO_ALT_NAME_INFO;
alt_info.generic.in.file.path = fname;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &alt_info);
+ status = smb_raw_pathinfo(cli->tree, tctx, &alt_info);
if (!NT_STATUS_IS_OK(status)) {
printf("RAW_FILEINFO_ALT_NAME_INFO failed - %s\n", nt_errstr(status));
ret = False;
@@ -321,7 +322,7 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
internal_info.generic.level = RAW_FILEINFO_INTERNAL_INFORMATION;
internal_info.generic.in.file.path = fname;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &internal_info);
+ status = smb_raw_pathinfo(cli->tree, tctx, &internal_info);
if (!NT_STATUS_IS_OK(status)) {
printf("RAW_FILEINFO_INTERNAL_INFORMATION failed - %s\n", nt_errstr(status));
ret = False;
@@ -330,7 +331,7 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
name_info.generic.level = RAW_FILEINFO_NAME_INFO;
name_info.generic.in.file.path = fname;
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &name_info);
+ status = smb_raw_pathinfo(cli->tree, tctx, &name_info);
if (!NT_STATUS_IS_OK(status)) {
printf("RAW_FILEINFO_NAME_INFO failed - %s\n", nt_errstr(status));
ret = False;
@@ -355,8 +356,8 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
if (s->sname1.field1 != (~1 & nt_time_to_unix(v.sname2.out.field2))) { \
printf("(%s) %s/%s [%s] != %s/%s [%s]\n", \
__location__, \
- #sname1, #field1, timestring(mem_ctx, s->sname1.field1), \
- #sname2, #field2, nt_time_string(mem_ctx, v.sname2.out.field2)); \
+ #sname1, #field1, timestring(tctx, s->sname1.field1), \
+ #sname2, #field2, nt_time_string(tctx, v.sname2.out.field2)); \
ret = False; \
} \
}} while (0)
@@ -367,8 +368,8 @@ static BOOL test_one_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
if (s->sname1.field1 != v.sname2.out.field2) { \
printf("(%s) %s/%s [%s] != %s/%s [%s]\n", \
__location__, \
- #sname1, #field1, nt_time_string(mem_ctx, s->sname1.field1), \
- #sname2, #field2, nt_time_string(mem_ctx, v.sname2.out.field2)); \
+ #sname1, #field1, nt_time_string(tctx, s->sname1.field1), \
+ #sname2, #field2, nt_time_string(tctx, v.sname2.out.field2)); \
ret = False; \
} \
}} while (0)
@@ -518,7 +519,7 @@ done:
struct multiple_result {
- TALLOC_CTX *mem_ctx;
+ TALLOC_CTX *tctx;
int count;
union smb_search_data *list;
};
@@ -532,7 +533,7 @@ static BOOL multiple_search_callback(void *private, const union smb_search_data
data->count++;
- data->list = talloc_realloc(data->mem_ctx,
+ data->list = talloc_realloc(data->tctx,
data->list,
union smb_search_data,
data->count);
@@ -548,7 +549,7 @@ enum continue_type {CONT_FLAGS, CONT_NAME, CONT_RESUME_KEY};
do a single file (non-wildcard) search
*/
static NTSTATUS multiple_search(struct smbcli_state *cli,
- TALLOC_CTX *mem_ctx,
+ TALLOC_CTX *tctx,
const char *pattern,
enum smb_search_data_level data_level,
enum continue_type cont_type,
@@ -580,7 +581,7 @@ static NTSTATUS multiple_search(struct smbcli_state *cli,
}
}
- status = smb_raw_search_first(cli->tree, mem_ctx,
+ status = smb_raw_search_first(cli->tree, tctx,
&io, data, multiple_search_callback);
@@ -621,7 +622,7 @@ static NTSTATUS multiple_search(struct smbcli_state *cli,
}
}
- status = smb_raw_search_next(cli->tree, mem_ctx,
+ status = smb_raw_search_next(cli->tree, tctx,
&io2, data, multiple_search_callback);
if (!NT_STATUS_IS_OK(status)) {
break;
@@ -686,7 +687,8 @@ static int search_compare(union smb_search_data *d1, union smb_search_data *d2)
/*
basic testing of search calls using many files
*/
-static BOOL test_many_files(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_many_files(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
const int num_files = 700;
int i, fnum, t;
@@ -745,11 +747,11 @@ static BOOL test_many_files(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
for (t=0;t<ARRAY_SIZE(search_types);t++) {
ZERO_STRUCT(result);
- result.mem_ctx = talloc_new(mem_ctx);
+ result.tctx = talloc_new(tctx);
printf("Continue %s via %s\n", search_types[t].name, search_types[t].cont_name);
- status = multiple_search(cli, mem_ctx, BASEDIR "\\*.*",
+ status = multiple_search(cli, tctx, BASEDIR "\\*.*",
search_types[t].data_level,
search_types[t].cont_type,
&result);
@@ -785,7 +787,7 @@ static BOOL test_many_files(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
}
talloc_free(fname);
}
- talloc_free(result.mem_ctx);
+ talloc_free(result.tctx);
}
done:
@@ -831,7 +833,8 @@ static BOOL check_result(struct multiple_result *result, const char *name, BOOL
/*
test what happens when the directory is modified during a search
*/
-static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_modify_search(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
const int num_files = 20;
int i, fnum;
@@ -863,7 +866,7 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("pulling the first file\n");
ZERO_STRUCT(result);
- result.mem_ctx = talloc_new(mem_ctx);
+ result.tctx = talloc_new(tctx);
io.t2ffirst.level = RAW_SEARCH_TRANS2;
io.t2ffirst.data_level = RAW_SEARCH_DATA_BOTH_DIRECTORY_INFO;
@@ -873,7 +876,7 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io.t2ffirst.in.storage_type = 0;
io.t2ffirst.in.pattern = BASEDIR "\\*.*";
- status = smb_raw_search_first(cli->tree, mem_ctx,
+ status = smb_raw_search_first(cli->tree, tctx,
&io, &result, multiple_search_callback);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(result.count, 1);
@@ -887,7 +890,7 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io2.t2fnext.in.flags = 0;
io2.t2fnext.in.last_name = result.list[result.count-1].both_directory_info.name.s;
- status = smb_raw_search_next(cli->tree, mem_ctx,
+ status = smb_raw_search_next(cli->tree, tctx,
&io2, &result, multiple_search_callback);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(result.count, 2);
@@ -897,7 +900,7 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("Changing attributes and deleting\n");
smbcli_open(cli->tree, BASEDIR "\\T003-03.txt.2", O_CREAT|O_RDWR, DENY_NONE);
smbcli_open(cli->tree, BASEDIR "\\T013-13.txt.2", O_CREAT|O_RDWR, DENY_NONE);
- fnum = create_complex_file(cli, mem_ctx, BASEDIR "\\T013-13.txt.3");
+ fnum = create_complex_file(cli, tctx, BASEDIR "\\T013-13.txt.3");
smbcli_unlink(cli->tree, BASEDIR "\\T014-14.txt");
torture_set_file_attribute(cli->tree, BASEDIR "\\T015-15.txt", FILE_ATTRIBUTE_HIDDEN);
torture_set_file_attribute(cli->tree, BASEDIR "\\T016-16.txt", FILE_ATTRIBUTE_NORMAL);
@@ -917,7 +920,7 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io2.t2fnext.in.flags = 0;
io2.t2fnext.in.last_name = ".";
- status = smb_raw_search_next(cli->tree, mem_ctx,
+ status = smb_raw_search_next(cli->tree, tctx,
&io2, &result, multiple_search_callback);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(result.count, 20);
@@ -937,7 +940,7 @@ static BOOL test_modify_search(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
for (i=0;i<result.count;i++) {
printf("%s %s (0x%x)\n",
result.list[i].both_directory_info.name.s,
- attrib_string(mem_ctx, result.list[i].both_directory_info.attrib),
+ attrib_string(tctx, result.list[i].both_directory_info.attrib),
result.list[i].both_directory_info.attrib);
}
}
@@ -953,7 +956,7 @@ done:
/*
testing if directories always come back sorted
*/
-static BOOL test_sorted(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_sorted(struct torture_context *tctx, struct smbcli_state *cli)
{
const int num_files = 700;
int i, fnum;
@@ -969,7 +972,7 @@ static BOOL test_sorted(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("Creating %d files\n", num_files);
for (i=0;i<num_files;i++) {
- fname = talloc_asprintf(cli, BASEDIR "\\%s.txt", generate_random_str_list(mem_ctx, 10, "abcdefgh"));
+ fname = talloc_asprintf(cli, BASEDIR "\\%s.txt", generate_random_str_list(tctx, 10, "abcdefgh"));
fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR, DENY_NONE);
if (fnum == -1) {
printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
@@ -982,9 +985,9 @@ static BOOL test_sorted(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
ZERO_STRUCT(result);
- result.mem_ctx = mem_ctx;
+ result.tctx = tctx;
- status = multiple_search(cli, mem_ctx, BASEDIR "\\*.*",
+ status = multiple_search(cli, tctx, BASEDIR "\\*.*",
RAW_SEARCH_DATA_BOTH_DIRECTORY_INFO,
CONT_NAME, &result);
CHECK_STATUS(status, NT_STATUS_OK);
@@ -1016,7 +1019,8 @@ done:
/*
basic testing of many old style search calls using separate dirs
*/
-static BOOL test_many_dirs(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_many_dirs(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
const int num_dirs = 20;
int i, fnum, n;
@@ -1057,9 +1061,9 @@ static BOOL test_many_dirs(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
talloc_free(dname);
}
- file = talloc_zero_array(mem_ctx, union smb_search_data, num_dirs);
- file2 = talloc_zero_array(mem_ctx, union smb_search_data, num_dirs);
- file3 = talloc_zero_array(mem_ctx, union smb_search_data, num_dirs);
+ file = talloc_zero_array(tctx, union smb_search_data, num_dirs);
+ file2 = talloc_zero_array(tctx, union smb_search_data, num_dirs);
+ file3 = talloc_zero_array(tctx, union smb_search_data, num_dirs);
printf("Search first on %d dirs\n", num_dirs);
@@ -1069,12 +1073,12 @@ static BOOL test_many_dirs(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io.search_first.data_level = RAW_SEARCH_DATA_SEARCH;
io.search_first.in.max_count = 1;
io.search_first.in.search_attrib = 0;
- io.search_first.in.pattern = talloc_asprintf(mem_ctx, BASEDIR "\\d%d\\*.txt", i);
- fname = talloc_asprintf(mem_ctx, "f%d-", i);
+ io.search_first.in.pattern = talloc_asprintf(tctx, BASEDIR "\\d%d\\*.txt", i);
+ fname = talloc_asprintf(tctx, "f%d-", i);
io.search_first.out.count = 0;
- status = smb_raw_search_first(cli->tree, mem_ctx,
+ status = smb_raw_search_first(cli->tree, tctx,
&io, (void *)&file[i], single_search_callback);
if (io.search_first.out.count != 1) {
printf("(%s) search first gave %d entries for dir %d - %s\n",
@@ -1103,11 +1107,11 @@ static BOOL test_many_dirs(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io2.search_next.in.max_count = 1;
io2.search_next.in.search_attrib = 0;
io2.search_next.in.id = file[i].search.id;
- fname = talloc_asprintf(mem_ctx, "f%d-", i);
+ fname = talloc_asprintf(tctx, "f%d-", i);
io2.search_next.out.count = 0;
- status = smb_raw_search_next(cli->tree, mem_ctx,
+ status = smb_raw_search_next(cli->tree, tctx,
&io2, (void *)&file2[i], single_search_callback);
if (io2.search_next.out.count != 1) {
printf("(%s) search next gave %d entries for dir %d - %s\n",
@@ -1137,10 +1141,10 @@ static BOOL test_many_dirs(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io2.search_next.in.max_count = 1;
io2.search_next.in.search_attrib = 0;
io2.search_next.in.id = file[i].search.id;
- fname = talloc_asprintf(mem_ctx, "f%d-", i);
+ fname = talloc_asprintf(tctx, "f%d-", i);
io2.search_next.out.count = 0;
- status = smb_raw_search_next(cli->tree, mem_ctx,
+ status = smb_raw_search_next(cli->tree, tctx,
&io2, (void *)&file3[i], single_search_callback);
if (io2.search_next.out.count != 1) {
printf("(%s) search next gave %d entries for dir %d - %s\n",
@@ -1179,7 +1183,8 @@ done:
/*
testing of OS/2 style delete
*/
-static BOOL test_os2_delete(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_os2_delete(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
const int num_files = 700;
const int delete_count = 4;
@@ -1212,7 +1217,7 @@ static BOOL test_os2_delete(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
ZERO_STRUCT(result);
- result.mem_ctx = mem_ctx;
+ result.tctx = tctx;
io.t2ffirst.level = RAW_SEARCH_TRANS2;
io.t2ffirst.data_level = RAW_SEARCH_DATA_EA_SIZE;
@@ -1222,7 +1227,7 @@ static BOOL test_os2_delete(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io.t2ffirst.in.storage_type = 0;
io.t2ffirst.in.pattern = BASEDIR "\\*";
- status = smb_raw_search_first(cli->tree, mem_ctx,
+ status = smb_raw_search_first(cli->tree, tctx,
&io, &result, multiple_search_callback);
CHECK_STATUS(status, NT_STATUS_OK);
@@ -1244,9 +1249,9 @@ static BOOL test_os2_delete(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
do {
ZERO_STRUCT(result);
- result.mem_ctx = mem_ctx;
+ result.tctx = tctx;
- status = smb_raw_search_next(cli->tree, mem_ctx,
+ status = smb_raw_search_next(cli->tree, tctx,
&io2, &result, multiple_search_callback);
if (!NT_STATUS_IS_OK(status)) {
break;
@@ -1290,7 +1295,8 @@ static int ealist_cmp(union smb_search_data *r1, union smb_search_data *r2)
/*
testing of the rather strange ea_list level
*/
-static BOOL test_ea_list(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_ea_list(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
int fnum;
BOOL ret = True;
@@ -1318,7 +1324,7 @@ static BOOL test_ea_list(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
setfile.generic.level = RAW_SFILEINFO_EA_SET;
setfile.generic.in.file.path = BASEDIR "\\file2.txt";
setfile.ea_set.in.num_eas = 2;
- setfile.ea_set.in.eas = talloc_array(mem_ctx, struct ea_struct, 2);
+ setfile.ea_set.in.eas = talloc_array(tctx, struct ea_struct, 2);
setfile.ea_set.in.eas[0].flags = 0;
setfile.ea_set.in.eas[0].name.s = "EA ONE";
setfile.ea_set.in.eas[0].value = data_blob_string_const("VALUE 1");
@@ -1334,7 +1340,7 @@ static BOOL test_ea_list(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_STATUS(status, NT_STATUS_OK);
ZERO_STRUCT(result);
- result.mem_ctx = mem_ctx;
+ result.tctx = tctx;
io.t2ffirst.level = RAW_SEARCH_TRANS2;
io.t2ffirst.data_level = RAW_SEARCH_DATA_EA_LIST;
@@ -1344,11 +1350,11 @@ static BOOL test_ea_list(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
io.t2ffirst.in.storage_type = 0;
io.t2ffirst.in.pattern = BASEDIR "\\*";
io.t2ffirst.in.num_names = 2;
- io.t2ffirst.in.ea_names = talloc_array(mem_ctx, struct ea_name, 2);
+ io.t2ffirst.in.ea_names = talloc_array(tctx, struct ea_name, 2);
io.t2ffirst.in.ea_names[0].name.s = "SECOND EA";
io.t2ffirst.in.ea_names[1].name.s = "THIRD EA";
- status = smb_raw_search_first(cli->tree, mem_ctx,
+ status = smb_raw_search_first(cli->tree, tctx,
&io, &result, multiple_search_callback);
CHECK_STATUS(status, NT_STATUS_OK);
CHECK_VALUE(result.count, 2);
@@ -1361,11 +1367,11 @@ static BOOL test_ea_list(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
nxt.t2fnext.in.flags = FLAG_TRANS2_FIND_REQUIRE_RESUME | FLAG_TRANS2_FIND_CONTINUE;
nxt.t2fnext.in.last_name = result.list[1].ea_list.name.s;
nxt.t2fnext.in.num_names = 2;
- nxt.t2fnext.in.ea_names = talloc_array(mem_ctx, struct ea_name, 2);
+ nxt.t2fnext.in.ea_names = talloc_array(tctx, struct ea_name, 2);
nxt.t2fnext.in.ea_names[0].name.s = "SECOND EA";
nxt.t2fnext.in.ea_names[1].name.s = "THIRD EA";
- status = smb_raw_search_next(cli->tree, mem_ctx,
+ status = smb_raw_search_next(cli->tree, tctx,
&nxt, &result, multiple_search_callback);
CHECK_STATUS(status, NT_STATUS_OK);
@@ -1408,28 +1414,17 @@ done:
/*
basic testing of all RAW_SEARCH_* calls using a single file
*/
-BOOL torture_raw_search(struct torture_context *torture)
+struct torture_suite *torture_raw_search(TALLOC_CTX *mem_ctx)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
+ struct torture_suite *suite = torture_suite_create(mem_ctx, "SEARCH");
- mem_ctx = talloc_init("torture_search");
+ torture_suite_add_1smb_test(suite, "one file", test_one_file);
+ torture_suite_add_1smb_test(suite, "many files", test_many_files);
+ torture_suite_add_1smb_test(suite, "sorted", test_sorted);
+ torture_suite_add_1smb_test(suite, "modify search", test_modify_search);
+ torture_suite_add_1smb_test(suite, "many dirs", test_many_dirs);
+ torture_suite_add_1smb_test(suite, "os2 delete", test_os2_delete);
+ torture_suite_add_1smb_test(suite, "ea list", test_ea_list);
- ret &= test_one_file(cli, mem_ctx);
- ret &= test_many_files(cli, mem_ctx);
- ret &= test_sorted(cli, mem_ctx);
- ret &= test_modify_search(cli, mem_ctx);
- ret &= test_many_dirs(cli, mem_ctx);
- ret &= test_os2_delete(cli, mem_ctx);
- ret &= test_ea_list(cli, mem_ctx);
-
- torture_close_connection(cli);
- talloc_free(mem_ctx);
-
- return ret;
+ return suite;
}
diff --git a/source4/torture/raw/seek.c b/source4/torture/raw/seek.c
index f9b072b3de..f5413d8b1d 100644
--- a/source4/torture/raw/seek.c
+++ b/source4/torture/raw/seek.c
@@ -233,23 +233,11 @@ done:
/*
basic testing of seek calls
*/
-BOOL torture_raw_seek(struct torture_context *torture)
+bool torture_raw_seek(struct torture_context *torture, struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
+ bool ret = true;
- mem_ctx = talloc_init("torture_raw_seek");
-
- if (!test_seek(cli, mem_ctx)) {
- ret = False;
- }
+ ret &= test_seek(cli, torture);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/setfileinfo.c b/source4/torture/raw/setfileinfo.c
index d30637bce8..b06a04753f 100644
--- a/source4/torture/raw/setfileinfo.c
+++ b/source4/torture/raw/setfileinfo.c
@@ -30,11 +30,10 @@
for each call we test that it succeeds, and where possible test
for consistency between the calls.
*/
-BOOL torture_raw_sfileinfo(struct torture_context *torture)
+bool torture_raw_sfileinfo(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
BOOL ret = True;
- TALLOC_CTX *mem_ctx;
int fnum_saved, d_fnum, fnum2, fnum = -1;
char *fnum_fname;
char *fnum_fname_new;
@@ -53,19 +52,13 @@ BOOL torture_raw_sfileinfo(struct torture_context *torture)
asprintf(&fnum_fname, BASEDIR "\\fnum_test_%d.txt", n);
asprintf(&fnum_fname_new, BASEDIR "\\fnum_test_new_%d.txt", n);
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_sfileinfo");
-
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
}
#define RECREATE_FILE(fname) do { \
if (fnum != -1) smbcli_close(cli->tree, fnum); \
- fnum = create_complex_file(cli, mem_ctx, fname); \
+ fnum = create_complex_file(cli, torture, fname); \
if (fnum == -1) { \
printf("(%s) ERROR: open of %s failed (%s)\n", \
__location__, fname, smbcli_errstr(cli->tree)); \
@@ -94,7 +87,7 @@ BOOL torture_raw_sfileinfo(struct torture_context *torture)
} \
finfo1.generic.level = RAW_FILEINFO_ALL_INFO; \
finfo1.generic.in.file.fnum = fnum; \
- status2 = smb_raw_fileinfo(cli->tree, mem_ctx, &finfo1); \
+ status2 = smb_raw_fileinfo(cli->tree, torture, &finfo1); \
if (!NT_STATUS_IS_OK(status2)) { \
printf("(%s) %s pathinfo - %s\n", __location__, #call, nt_errstr(status)); \
ret = False; \
@@ -117,10 +110,10 @@ BOOL torture_raw_sfileinfo(struct torture_context *torture)
} \
finfo1.generic.level = RAW_FILEINFO_ALL_INFO; \
finfo1.generic.in.file.path = path_fname; \
- status2 = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo1); \
+ status2 = smb_raw_pathinfo(cli->tree, torture, &finfo1); \
if (NT_STATUS_EQUAL(status2, NT_STATUS_OBJECT_NAME_NOT_FOUND)) { \
finfo1.generic.in.file.path = path_fname_new; \
- status2 = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo1); \
+ status2 = smb_raw_pathinfo(cli->tree, torture, &finfo1); \
} \
if (!NT_STATUS_IS_OK(status2)) { \
printf("(%s) %s pathinfo - %s\n", __location__, #call, nt_errstr(status2)); \
@@ -132,13 +125,13 @@ BOOL torture_raw_sfileinfo(struct torture_context *torture)
finfo2.generic.level = RAW_FILEINFO_ ## call; \
if (check_fnum) { \
finfo2.generic.in.file.fnum = fnum; \
- status2 = smb_raw_fileinfo(cli->tree, mem_ctx, &finfo2); \
+ status2 = smb_raw_fileinfo(cli->tree, torture, &finfo2); \
} else { \
finfo2.generic.in.file.path = path_fname; \
- status2 = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo2); \
+ status2 = smb_raw_pathinfo(cli->tree, torture, &finfo2); \
if (NT_STATUS_EQUAL(status2, NT_STATUS_OBJECT_NAME_NOT_FOUND)) { \
finfo2.generic.in.file.path = path_fname_new; \
- status2 = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo2); \
+ status2 = smb_raw_pathinfo(cli->tree, torture, &finfo2); \
} \
} \
if (!NT_STATUS_IS_OK(status2)) { \
@@ -153,7 +146,7 @@ BOOL torture_raw_sfileinfo(struct torture_context *torture)
printf("(%s) %s - %s/%s should be 0x%x - 0x%x\n", __location__, \
call_name, #stype, #field, \
(uint_t)value, (uint_t)finfo2.stype.out.field); \
- dump_all_info(mem_ctx, &finfo1); \
+ dump_all_info(torture, &finfo1); \
ret = False; \
}} while (0)
@@ -164,9 +157,9 @@ BOOL torture_raw_sfileinfo(struct torture_context *torture)
call_name, #stype, #field, \
(uint_t)value, \
(uint_t)nt_time_to_unix(finfo2.stype.out.field)); \
- printf("\t%s", timestring(mem_ctx, value)); \
- printf("\t%s\n", nt_time_string(mem_ctx, finfo2.stype.out.field)); \
- dump_all_info(mem_ctx, &finfo1); \
+ printf("\t%s", timestring(torture, value)); \
+ printf("\t%s\n", nt_time_string(torture, finfo2.stype.out.field)); \
+ dump_all_info(torture, &finfo1); \
ret = False; \
}} while (0)
@@ -177,7 +170,7 @@ BOOL torture_raw_sfileinfo(struct torture_context *torture)
call_name, #stype, #field, \
value, \
finfo2.stype.out.field); \
- dump_all_info(mem_ctx, &finfo1); \
+ dump_all_info(torture, &finfo1); \
ret = False; \
}} while (0)
@@ -444,19 +437,16 @@ done:
printf("Failed to delete %s - %s\n", path_fname, smbcli_errstr(cli->tree));
}
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
/*
* basic testing of all RAW_SFILEINFO_RENAME call
*/
-BOOL torture_raw_sfileinfo_rename(struct torture_context *torture)
+bool torture_raw_sfileinfo_rename(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
BOOL ret = True;
- TALLOC_CTX *mem_ctx;
int fnum_saved, d_fnum, fnum2, fnum = -1;
char *fnum_fname;
char *fnum_fname_new;
@@ -474,12 +464,6 @@ BOOL torture_raw_sfileinfo_rename(struct torture_context *torture)
asprintf(&fnum_fname, BASEDIR "\\fnum_test_%d.txt", n);
asprintf(&fnum_fname_new, BASEDIR "\\fnum_test_new_%d.txt", n);
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_sfileinfo");
-
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
}
@@ -488,8 +472,8 @@ BOOL torture_raw_sfileinfo_rename(struct torture_context *torture)
ZERO_STRUCT(sfinfo);
- smbcli_close(cli->tree, create_complex_file(cli, mem_ctx, fnum_fname_new));
- smbcli_close(cli->tree, create_complex_file(cli, mem_ctx, path_fname_new));
+ smbcli_close(cli->tree, create_complex_file(cli, torture, fnum_fname_new));
+ smbcli_close(cli->tree, create_complex_file(cli, torture, path_fname_new));
sfinfo.rename_information.in.overwrite = 0;
sfinfo.rename_information.in.root_fid = 0;
@@ -509,7 +493,7 @@ BOOL torture_raw_sfileinfo_rename(struct torture_context *torture)
CHECK_STR(NAME_INFO, name_info, fname.s, fnum_fname_new);
printf("Trying rename with dest file open\n");
- fnum2 = create_complex_file(cli, mem_ctx, fnum_fname);
+ fnum2 = create_complex_file(cli, torture, fnum_fname);
sfinfo.rename_information.in.new_name = fnum_fname+strlen(BASEDIR)+1;
sfinfo.rename_information.in.overwrite = 1;
CHECK_CALL_FNUM(RENAME_INFORMATION, NT_STATUS_ACCESS_DENIED);
@@ -536,7 +520,7 @@ BOOL torture_raw_sfileinfo_rename(struct torture_context *torture)
CHECK_CALL_FNUM(RENAME_INFORMATION, NT_STATUS_OK);
CHECK_STR(NAME_INFO, name_info, fname.s, fnum_fname);
- fnum2 = create_complex_file(cli, mem_ctx, fnum_fname);
+ fnum2 = create_complex_file(cli, torture, fnum_fname);
sfinfo.rename_information.in.new_name = fnum_fname_new+strlen(BASEDIR)+1;
sfinfo.rename_information.in.overwrite = 0;
CHECK_CALL_FNUM(RENAME_INFORMATION, NT_STATUS_OK);
@@ -579,35 +563,25 @@ done:
printf("Failed to delete %s - %s\n", path_fname, smbcli_errstr(cli->tree));
}
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
/*
look for the w2k3 setpathinfo STANDARD bug
*/
-BOOL torture_raw_sfileinfo_bug(struct torture_context *torture)
+bool torture_raw_sfileinfo_bug(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
- TALLOC_CTX *mem_ctx;
const char *fname = "\\bug3.txt";
union smb_setfileinfo sfinfo;
NTSTATUS status;
int fnum;
- if (!torture_setting_bool(torture, "dangerous", False)) {
- printf("torture_raw_sfileinfo_bug disabled - enable dangerous tests to use\n");
- return True;
- }
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_sfileinfo");
+ if (!torture_setting_bool(torture, "dangerous", false))
+ torture_skip(torture,
+ "torture_raw_sfileinfo_bug disabled - enable dangerous tests to use\n");
- fnum = create_complex_file(cli, mem_ctx, fname);
+ fnum = create_complex_file(cli, torture, fname);
smbcli_close(cli->tree, fnum);
sfinfo.generic.level = RAW_SFILEINFO_STANDARD;
diff --git a/source4/torture/raw/streams.c b/source4/torture/raw/streams.c
index b52d84f772..24428efcf7 100644
--- a/source4/torture/raw/streams.c
+++ b/source4/torture/raw/streams.c
@@ -213,28 +213,19 @@ done:
/*
basic testing of streams calls
*/
-BOOL torture_raw_streams(struct torture_context *torture)
+bool torture_raw_streams(struct torture_context *torture,
+ struct smbcli_state *cli)
{
- struct smbcli_state *cli;
BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_streams");
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
}
- ret &= test_stream_io(cli, mem_ctx);
+ ret &= test_stream_io(cli, torture);
smb_raw_exit(cli->session);
smbcli_deltree(cli->tree, BASEDIR);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
return ret;
}
diff --git a/source4/torture/raw/unlink.c b/source4/torture/raw/unlink.c
index 3e4580d2d3..c307b14e08 100644
--- a/source4/torture/raw/unlink.c
+++ b/source4/torture/raw/unlink.c
@@ -37,7 +37,7 @@
/*
test unlink ops
*/
-static BOOL test_unlink(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_unlink(struct torture_context *tctx, struct smbcli_state *cli)
{
union smb_unlink io;
NTSTATUS status;
@@ -199,7 +199,8 @@ done:
/*
test delete on close
*/
-static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_delete_on_close(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_open op;
union smb_unlink io;
@@ -224,7 +225,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
printf("Testing with delete_on_close 0\n");
- fnum = create_complex_file(cli, mem_ctx, fname);
+ fnum = create_complex_file(cli, tctx, fname);
sfinfo.disposition_info.level = RAW_SFILEINFO_DISPOSITION_INFO;
sfinfo.disposition_info.in.file.fnum = fnum;
@@ -238,7 +239,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_STATUS(status, NT_STATUS_OK);
printf("Testing with delete_on_close 1\n");
- fnum = create_complex_file(cli, mem_ctx, fname);
+ fnum = create_complex_file(cli, tctx, fname);
sfinfo.disposition_info.in.file.fnum = fnum;
sfinfo.disposition_info.in.delete_on_close = 1;
status = smb_raw_setfileinfo(cli->tree, &sfinfo);
@@ -290,7 +291,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
status = create_directory_handle(cli->tree, dname, &fnum);
CHECK_STATUS(status, NT_STATUS_OK);
- fnum2 = create_complex_file(cli, mem_ctx, inside);
+ fnum2 = create_complex_file(cli, tctx, inside);
sfinfo.disposition_info.in.file.fnum = fnum;
sfinfo.disposition_info.in.delete_on_close = 1;
@@ -321,7 +322,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_STATUS(status, NT_STATUS_OK);
smbcli_close(cli->tree, fnum);
- fnum2 = create_complex_file(cli, mem_ctx, inside);
+ fnum2 = create_complex_file(cli, tctx, inside);
smbcli_close(cli->tree, fnum2);
op.generic.level = RAW_OPEN_NTCREATEX;
@@ -337,7 +338,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
op.ntcreatex.in.security_flags = 0;
op.ntcreatex.in.fname = dname;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.ntcreatex.out.file.fnum;
@@ -353,7 +354,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_STATUS(status, NT_STATUS_OK);
smbcli_close(cli->tree, fnum);
- fnum2 = create_complex_file(cli, mem_ctx, inside);
+ fnum2 = create_complex_file(cli, tctx, inside);
smbcli_close(cli->tree, fnum2);
op.generic.level = RAW_OPEN_NTCREATEX;
@@ -369,7 +370,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
op.ntcreatex.in.security_flags = 0;
op.ntcreatex.in.fname = dname;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum2 = op.ntcreatex.out.file.fnum;
@@ -386,7 +387,7 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
smbcli_close(cli->tree, fnum);
- fnum = create_complex_file(cli, mem_ctx, inside);
+ fnum = create_complex_file(cli, tctx, inside);
smbcli_close(cli->tree, fnum);
/* we have a dir with a file in it, no handles open */
@@ -404,13 +405,13 @@ static BOOL test_delete_on_close(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
op.ntcreatex.in.security_flags = 0;
op.ntcreatex.in.fname = dname;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum = op.ntcreatex.out.file.fnum;
/* open without delete on close */
op.ntcreatex.in.create_options = NTCREATEX_OPTIONS_DIRECTORY;
- status = smb_raw_open(cli->tree, mem_ctx, &op);
+ status = smb_raw_open(cli->tree, tctx, &op);
CHECK_STATUS(status, NT_STATUS_OK);
fnum2 = op.ntcreatex.out.file.fnum;
@@ -436,22 +437,13 @@ done:
/*
basic testing of unlink calls
*/
-BOOL torture_raw_unlink(struct torture_context *torture)
+struct torture_suite *torture_raw_unlink(TALLOC_CTX *mem_ctx)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_unlink");
+ struct torture_suite *suite = torture_suite_create(mem_ctx,
+ "UNLINK");
- ret &= test_unlink(cli, mem_ctx);
- ret &= test_delete_on_close(cli, mem_ctx);
+ torture_suite_add_1smb_test(suite, "unlink", test_unlink);
+ torture_suite_add_1smb_test(suite, "delete_on_close", test_delete_on_close);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
- return ret;
+ return suite;
}
diff --git a/source4/torture/raw/write.c b/source4/torture/raw/write.c
index 9b043bfe2c..75d275fc3c 100644
--- a/source4/torture/raw/write.c
+++ b/source4/torture/raw/write.c
@@ -51,12 +51,12 @@
#define CHECK_ALL_INFO(v, field) do { \
finfo.all_info.level = RAW_FILEINFO_ALL_INFO; \
finfo.all_info.in.file.path = fname; \
- status = smb_raw_pathinfo(cli->tree, mem_ctx, &finfo); \
+ status = smb_raw_pathinfo(cli->tree, tctx, &finfo); \
CHECK_STATUS(status, NT_STATUS_OK); \
if ((v) != finfo.all_info.out.field) { \
printf("(%s) wrong value for field %s %.0f - %.0f\n", \
__location__, #field, (double)v, (double)finfo.all_info.out.field); \
- dump_all_info(mem_ctx, &finfo); \
+ dump_all_info(tctx, &finfo); \
ret = False; \
}} while (0)
@@ -95,7 +95,8 @@ static BOOL check_buffer(uint8_t *buf, uint_t seed, int len, const char *locatio
/*
test write ops
*/
-static BOOL test_write(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_write(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_write io;
NTSTATUS status;
@@ -107,7 +108,7 @@ static BOOL test_write(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
uint_t seed = time(NULL);
union smb_fileinfo finfo;
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -222,7 +223,8 @@ done:
/*
test writex ops
*/
-static BOOL test_writex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_writex(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_write io;
NTSTATUS status;
@@ -240,7 +242,7 @@ static BOOL test_writex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
printf("dangerous not set - limiting range of test to 2^%d\n", max_bits);
}
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -409,7 +411,8 @@ done:
/*
test write unlock ops
*/
-static BOOL test_writeunlock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_writeunlock(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_write io;
NTSTATUS status;
@@ -421,7 +424,7 @@ static BOOL test_writeunlock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
uint_t seed = time(NULL);
union smb_fileinfo finfo;
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -551,7 +554,8 @@ done:
/*
test write close ops
*/
-static BOOL test_writeclose(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_writeclose(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
union smb_write io;
NTSTATUS status;
@@ -563,7 +567,7 @@ static BOOL test_writeclose(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
uint_t seed = time(NULL);
union smb_fileinfo finfo;
- buf = talloc_zero_size(mem_ctx, maxsize);
+ buf = talloc_zero_size(tctx, maxsize);
if (!torture_setup_dir(cli, BASEDIR)) {
return False;
@@ -706,24 +710,14 @@ done:
/*
basic testing of write calls
*/
-BOOL torture_raw_write(struct torture_context *torture)
+struct torture_suite *torture_raw_write(TALLOC_CTX *mem_ctx)
{
- struct smbcli_state *cli;
- BOOL ret = True;
- TALLOC_CTX *mem_ctx;
-
- if (!torture_open_connection(&cli, 0)) {
- return False;
- }
-
- mem_ctx = talloc_init("torture_raw_write");
+ struct torture_suite *suite = torture_suite_create(mem_ctx, "WRITE");
- ret &= test_write(cli, mem_ctx);
- ret &= test_writeunlock(cli, mem_ctx);
- ret &= test_writeclose(cli, mem_ctx);
- ret &= test_writex(cli, mem_ctx);
+ torture_suite_add_1smb_test(suite, "write", test_write);
+ torture_suite_add_1smb_test(suite, "write unlock", test_writeunlock);
+ torture_suite_add_1smb_test(suite, "write close", test_writeclose);
+ torture_suite_add_1smb_test(suite, "writex", test_writex);
- torture_close_connection(cli);
- talloc_free(mem_ctx);
- return ret;
+ return suite;
}