diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-08-26 15:16:40 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 15:02:34 -0500 |
commit | b409d4120f9ae451f93a2322267c0f346531d9f3 (patch) | |
tree | 04ac2189f16db99537c36320a9d9e7c3c9d43b6f /source4/torture/rpc/rpc.c | |
parent | 8e789517b723955f1530837058d5e9fe98aba19f (diff) | |
download | samba-b409d4120f9ae451f93a2322267c0f346531d9f3.tar.gz samba-b409d4120f9ae451f93a2322267c0f346531d9f3.tar.bz2 samba-b409d4120f9ae451f93a2322267c0f346531d9f3.zip |
r24667: Finally merge the registry improvements that Wilco Baan Hofman and I have
been working on for at least half a year now. Contains the following
improvements:
* proper layering (finally!) for the registry library. Distinction is
now made between 'real' backends (local, remote, wine, etc) and
the low-level hive backends (regf, creg, ldb, ...) that are only used
by the local registry backend
* tests for all important hive and registry operations
* re-enable RPC-WINREG tests (still needs more work though, as
some return values aren't checked yet)
* write support for REGF files
* dir backend now supports setting/reading values, creating keys
* support for storing security descriptors
* remove CREG backend as it was incomplete, didn't match the data model
and wasn't used at all anyway
* support for parsing ADM files as used by the policy editor (see lib/policy)
* support for parsing PREG files (format used by .POL files)
* new streaming interface for registry diffs (improves speed and memory usage
for regdiff/regpatch significantly)
... and fixes a large number of bugs in the registry code
(This used to be commit 7a1eec6358bc863dfc671c542b7185d3e39d7b5a)
Diffstat (limited to 'source4/torture/rpc/rpc.c')
-rw-r--r-- | source4/torture/rpc/rpc.c | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/source4/torture/rpc/rpc.c b/source4/torture/rpc/rpc.c index 250945a8a2..12ace3e7d2 100644 --- a/source4/torture/rpc/rpc.c +++ b/source4/torture/rpc/rpc.c @@ -134,6 +134,17 @@ static bool torture_rpc_wrap_test(struct torture_context *tctx, return fn(tctx, (struct dcerpc_pipe *)tcase->data); } +static bool torture_rpc_wrap_test_ex(struct torture_context *tctx, + struct torture_tcase *tcase, + struct torture_test *test) +{ + bool (*fn) (struct torture_context *, struct dcerpc_pipe *, const void *); + + fn = test->fn; + + return fn(tctx, (struct dcerpc_pipe *)tcase->data, test->data); +} + _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test( struct torture_tcase *tcase, const char *name, @@ -155,6 +166,29 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test( return test; } +_PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_ex( + struct torture_tcase *tcase, + const char *name, + bool (*fn) (struct torture_context *, struct dcerpc_pipe *, + void *), + void *userdata) +{ + struct torture_test *test; + + test = talloc(tcase, struct torture_test); + + test->name = talloc_strdup(test, name); + test->description = NULL; + test->run = torture_rpc_wrap_test_ex; + test->dangerous = false; + test->data = userdata; + test->fn = fn; + + DLIST_ADD(tcase->tests, test); + + return test; +} + NTSTATUS torture_rpc_init(void) { struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "RPC"); @@ -173,7 +207,8 @@ NTSTATUS torture_rpc_init(void) torture_suite_add_suite(suite, torture_rpc_eventlog()); torture_suite_add_suite(suite, torture_rpc_atsvc()); torture_suite_add_suite(suite, torture_rpc_wkssvc()); - torture_suite_add_suite(suite, torture_rpc_handles()); + torture_suite_add_suite(suite, torture_rpc_handles(suite)); + torture_suite_add_suite(suite, torture_rpc_winreg(suite)); torture_suite_add_simple_test(suite, "SPOOLSS", torture_rpc_spoolss); torture_suite_add_simple_test(suite, "SAMR", torture_rpc_samr); torture_suite_add_simple_test(suite, "SAMR-USERS", torture_rpc_samr_users); @@ -186,7 +221,6 @@ NTSTATUS torture_rpc_init(void) torture_suite_add_simple_test(suite, "SRVSVC", torture_rpc_srvsvc); torture_suite_add_simple_test(suite, "SVCCTL", torture_rpc_svcctl); torture_suite_add_simple_test(suite, "EPMAPPER", torture_rpc_epmapper); - torture_suite_add_simple_test(suite, "WINREG", torture_rpc_winreg); torture_suite_add_simple_test(suite, "INITSHUTDOWN", torture_rpc_initshutdown); torture_suite_add_simple_test(suite, "OXIDRESOLVE", torture_rpc_oxidresolve); torture_suite_add_simple_test(suite, "REMACT", torture_rpc_remact); |