From 0e6773525fa9d3fe9b7559ab4067e088f8a934d8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 28 Aug 2007 14:42:37 +0000 Subject: r24741: More use of the torture API. (This used to be commit de05c3651a6e9e6611b296873526afd9292327c1) --- source4/torture/rpc/handles.c | 10 --------- source4/torture/rpc/initshutdown.c | 3 ++- source4/torture/rpc/rpc.c | 46 +++++++++++++++++++++++++------------- source4/torture/rpc/srvsvc.c | 7 +++--- source4/torture/rpc/winreg.c | 1 - 5 files changed, 35 insertions(+), 32 deletions(-) (limited to 'source4/torture/rpc') 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"); -- cgit