summaryrefslogtreecommitdiff
path: root/source4/torture/rpc
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-08-28 14:42:37 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:03:02 -0500
commit0e6773525fa9d3fe9b7559ab4067e088f8a934d8 (patch)
treefb9498c93995015771ba6dfd27ffcaa655f698a9 /source4/torture/rpc
parent8277256cee6328a130e3a714579a4bc766d66b9b (diff)
downloadsamba-0e6773525fa9d3fe9b7559ab4067e088f8a934d8.tar.gz
samba-0e6773525fa9d3fe9b7559ab4067e088f8a934d8.tar.bz2
samba-0e6773525fa9d3fe9b7559ab4067e088f8a934d8.zip
r24741: More use of the torture API.
(This used to be commit de05c3651a6e9e6611b296873526afd9292327c1)
Diffstat (limited to 'source4/torture/rpc')
-rw-r--r--source4/torture/rpc/handles.c10
-rw-r--r--source4/torture/rpc/initshutdown.c3
-rw-r--r--source4/torture/rpc/rpc.c46
-rw-r--r--source4/torture/rpc/srvsvc.c7
-rw-r--r--source4/torture/rpc/winreg.c1
5 files changed, 35 insertions, 32 deletions
diff --git a/source4/torture/rpc/handles.c b/source4/torture/rpc/handles.c
index 5b6082f7dd..f35897b3df 100644
--- a/source4/torture/rpc/handles.c
+++ b/source4/torture/rpc/handles.c
@@ -116,11 +116,6 @@ static bool test_handles_lsa_shared(struct torture_context *torture)
torture_comment(torture, "RPC-HANDLE-LSARPC-SHARED\n");
- if (torture_setting_bool(torture, "samba4", false)) {
- torture_comment(torture, "LSA shared-policy-handle test against Samba4 - skipping\n");
- return true;
- }
-
torture_comment(torture, "connect lsa pipe1\n");
status = torture_rpc_connection(torture, &p1, &ndr_table_lsarpc);
torture_assert_ntstatus_ok(torture, status, "opening lsa pipe1");
@@ -399,11 +394,6 @@ static bool test_handles_mixed_shared(struct torture_context *torture)
torture_comment(torture, "RPC-HANDLE-MIXED-SHARED\n");
- if (torture_setting_bool(torture, "samba4", false)) {
- torture_comment(torture, "Mixed shared-policy-handle test against Samba4 - skipping\n");
- return true;
- }
-
torture_comment(torture, "connect samr pipe1\n");
status = torture_rpc_connection(torture, &p1, &ndr_table_samr);
torture_assert_ntstatus_ok(torture, status, "opening samr pipe1");
diff --git a/source4/torture/rpc/initshutdown.c b/source4/torture/rpc/initshutdown.c
index cb6bd4ad53..aa817928ab 100644
--- a/source4/torture/rpc/initshutdown.c
+++ b/source4/torture/rpc/initshutdown.c
@@ -129,7 +129,8 @@ BOOL torture_rpc_initshutdown(struct torture_context *torture)
}
if (!torture_setting_bool(torture, "dangerous", False)) {
- printf("initshutdown tests disabled - enable dangerous tests to use\n");
+ torture_comment(torture,
+ "initshutdown tests disabled - enable dangerous tests to use\n");
} else {
ret &= test_Init(p, mem_ctx, "spottyfood", 30);
ret &= test_Abort(p, mem_ctx);
diff --git a/source4/torture/rpc/rpc.c b/source4/torture/rpc/rpc.c
index fe6ffbd460..21a85fbf03 100644
--- a/source4/torture/rpc/rpc.c
+++ b/source4/torture/rpc/rpc.c
@@ -27,6 +27,12 @@
#include "librpc/ndr/ndr_table.h"
#include "lib/util/dlinklist.h"
+struct torture_rpc_tcase {
+ struct torture_tcase tcase;
+ const struct ndr_interface_table *table;
+ struct dcerpc_pipe *pipe;
+};
+
/* open a rpc connection to the chosen binding string */
_PUBLIC_ NTSTATUS torture_rpc_connection(struct torture_context *tctx,
struct dcerpc_pipe **p,
@@ -97,13 +103,15 @@ static bool torture_rpc_setup_anonymous(struct torture_context *tctx,
struct cli_credentials *anon_credentials;
NTSTATUS status;
const char *binding = torture_setting_string(tctx, "binding", NULL);
+ struct torture_rpc_tcase *tcase = talloc_get_type(
+ tctx->active_tcase, struct torture_rpc_tcase);
anon_credentials = cli_credentials_init_anon(tctx);
status = dcerpc_pipe_connect(tctx,
(struct dcerpc_pipe **)data,
binding,
- (const struct ndr_interface_table *)tctx->active_tcase->data,
+ tcase->table,
anon_credentials, NULL);
torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
@@ -114,10 +122,12 @@ static bool torture_rpc_setup_anonymous(struct torture_context *tctx,
static bool torture_rpc_setup (struct torture_context *tctx, void **data)
{
NTSTATUS status;
+ struct torture_rpc_tcase *tcase = talloc_get_type(
+ tctx->active_tcase, struct torture_rpc_tcase);
status = torture_rpc_connection(tctx,
(struct dcerpc_pipe **)data,
- (const struct ndr_interface_table *)tctx->active_tcase->data);
+ (const struct ndr_interface_table *)tcase->table);
torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
@@ -130,29 +140,33 @@ static bool torture_rpc_teardown (struct torture_context *tcase, void *data)
return true;
}
-_PUBLIC_ struct torture_tcase *torture_suite_add_anon_rpc_iface_tcase(struct torture_suite *suite,
+_PUBLIC_ struct torture_rpc_tcase *torture_suite_add_anon_rpc_iface_tcase(struct torture_suite *suite,
const char *name,
const struct ndr_interface_table *table)
{
- struct torture_tcase *tcase = torture_suite_add_tcase(suite, name);
+ struct torture_rpc_tcase *tcase = talloc(suite, struct torture_rpc_tcase);
+
+ torture_suite_init_tcase(suite, (struct torture_tcase *)tcase, name);
- tcase->setup = torture_rpc_setup_anonymous;
- tcase->teardown = torture_rpc_teardown;
- tcase->data = discard_const(table);
+ tcase->tcase.setup = torture_rpc_setup_anonymous;
+ tcase->tcase.teardown = torture_rpc_teardown;
+ tcase->table = table;
return tcase;
}
-_PUBLIC_ struct torture_tcase *torture_suite_add_rpc_iface_tcase(struct torture_suite *suite,
+_PUBLIC_ struct torture_rpc_tcase *torture_suite_add_rpc_iface_tcase(struct torture_suite *suite,
const char *name,
const struct ndr_interface_table *table)
{
- struct torture_tcase *tcase = torture_suite_add_tcase(suite, name);
+ struct torture_rpc_tcase *tcase = talloc(suite, struct torture_rpc_tcase);
+
+ torture_suite_init_tcase(suite, (struct torture_tcase *)tcase, name);
- tcase->setup = torture_rpc_setup;
- tcase->teardown = torture_rpc_teardown;
- tcase->data = discard_const(table);
+ tcase->tcase.setup = torture_rpc_setup;
+ tcase->tcase.teardown = torture_rpc_teardown;
+ tcase->table = table;
return tcase;
}
@@ -180,7 +194,7 @@ static bool torture_rpc_wrap_test_ex(struct torture_context *tctx,
}
_PUBLIC_ struct torture_test *torture_rpc_tcase_add_test(
- struct torture_tcase *tcase,
+ struct torture_rpc_tcase *tcase,
const char *name,
bool (*fn) (struct torture_context *, struct dcerpc_pipe *))
{
@@ -195,13 +209,13 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test(
test->data = NULL;
test->fn = fn;
- DLIST_ADD(tcase->tests, test);
+ DLIST_ADD(tcase->tcase.tests, test);
return test;
}
_PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_ex(
- struct torture_tcase *tcase,
+ struct torture_rpc_tcase *tcase,
const char *name,
bool (*fn) (struct torture_context *, struct dcerpc_pipe *,
void *),
@@ -218,7 +232,7 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_ex(
test->data = userdata;
test->fn = fn;
- DLIST_ADD(tcase->tests, test);
+ DLIST_ADD(tcase->tcase.tests, test);
return test;
}
diff --git a/source4/torture/rpc/srvsvc.c b/source4/torture/rpc/srvsvc.c
index b99570f81d..15d8502867 100644
--- a/source4/torture/rpc/srvsvc.c
+++ b/source4/torture/rpc/srvsvc.c
@@ -538,10 +538,9 @@ static bool test_NetShareAddSetDel(struct torture_context *tctx,
int i;
BOOL ret = True;
- if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
- d_printf("NetShareAddSetDel disabled - enable dangerous tests to use\n");
- return True;
- }
+ if (!torture_setting_bool(tctx, "dangerous", false))
+ torture_skip(tctx,
+ "NetShareAddSetDel disabled - enable dangerous tests to use\n");
a.in.server_unc = r.in.server_unc = q.in.server_unc = d.in.server_unc =
talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
diff --git a/source4/torture/rpc/winreg.c b/source4/torture/rpc/winreg.c
index d433406c58..7559a4d8ac 100644
--- a/source4/torture/rpc/winreg.c
+++ b/source4/torture/rpc/winreg.c
@@ -533,7 +533,6 @@ static bool test_InitiateSystemShutdown(struct torture_context *tctx,
torture_skip(tctx,
"winreg_InitiateShutdown disabled - enable dangerous tests to use");
-
r.in.hostname = &hostname;
r.in.message = talloc(tctx, struct initshutdown_String);
init_initshutdown_String(tctx, r.in.message, "spottyfood");