From 1229935aa91126130c25a7e24e9cb3e74f3a61f9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 12 Oct 2010 19:53:47 +0200 Subject: torture/becomedc: Add test for global schema, use samdb_connect(). Autobuild-User: Jelmer Vernooij Autobuild-Date: Tue Oct 12 18:35:33 UTC 2010 on sn-devel-104 --- source4/dsdb/schema/schema_set.c | 7 ++++++- source4/torture/libnet/libnet_BecomeDC.c | 14 ++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c index 4a4466af34..21341157fe 100644 --- a/source4/dsdb/schema/schema_set.c +++ b/source4/dsdb/schema/schema_set.c @@ -487,6 +487,11 @@ int dsdb_set_global_schema(struct ldb_context *ldb) return ret; } +bool dsdb_uses_global_schema(struct ldb_context *ldb) +{ + return (ldb_get_opaque(ldb, "dsdb_use_global_schema") != NULL); +} + /** * Find the schema object for this ldb * @@ -505,7 +510,7 @@ struct dsdb_schema *dsdb_get_schema(struct ldb_context *ldb, TALLOC_CTX *referen } /* see if we have a cached copy */ - use_global_schema = (ldb_get_opaque(ldb, "dsdb_use_global_schema") != NULL); + use_global_schema = dsdb_uses_global_schema(ldb); if (use_global_schema) { schema_in = global_schema; } else { diff --git a/source4/torture/libnet/libnet_BecomeDC.c b/source4/torture/libnet/libnet_BecomeDC.c index 87d646cf92..0fbad00d7b 100644 --- a/source4/torture/libnet/libnet_BecomeDC.c +++ b/source4/torture/libnet/libnet_BecomeDC.c @@ -144,16 +144,18 @@ bool torture_net_become_dc(struct torture_context *torture) lp_ctx = libnet_vampire_cb_lp_ctx(s); sam_ldb_path = talloc_asprintf(s, "%s/%s", location, "private/sam.ldb"); + lpcfg_set_cmdline(lp_ctx, "sam database", sam_ldb_path); torture_comment(torture, "Reopen the SAM LDB with system credentials and all replicated data: %s\n", sam_ldb_path); - ldb = ldb_wrap_connect(s, torture->ev, lp_ctx, sam_ldb_path, - system_session(lp_ctx), - NULL, 0); - torture_assert_int_equal_goto(torture, (ldb?1:0), 1, ret, cleanup, + ldb = samdb_connect(s, torture->ev, lp_ctx, system_session(lp_ctx), 0); + torture_assert_goto(torture, ldb != NULL, ret, cleanup, talloc_asprintf(torture, "Failed to open '%s'\n", sam_ldb_path)); + torture_assert_goto(torture, dsdb_uses_global_schema(ldb), ret, cleanup, + "Uses global schema"); + schema = dsdb_get_schema(ldb, s); - torture_assert_int_equal_goto(torture, (schema?1:0), 1, ret, cleanup, + torture_assert_goto(torture, schema != NULL, ret, cleanup, "Failed to get loaded dsdb_schema\n"); /* Make sure we get this from the command line */ @@ -174,7 +176,7 @@ cleanup: "libnet_UnbecomeDC() failed - %s %s\n", nt_errstr(status), u.out.error_string)); - /* Leave domain. */ + /* Leave domain. */ torture_leave_domain(torture, tj); talloc_free(s); -- cgit