torture/becomedc: Add test for global schema, use samdb_connect().
authorJelmer Vernooij <jelmer@samba.org>
Tue, 12 Oct 2010 17:53:47 +0000 (19:53 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 12 Oct 2010 18:35:33 +0000 (18:35 +0000)
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Tue Oct 12 18:35:33 UTC 2010 on sn-devel-104

source4/dsdb/schema/schema_set.c
source4/torture/libnet/libnet_BecomeDC.c

index 4a4466af3485b3352cad020f1117cf462f459179..21341157fe5ed265c4cfce47effbc9e453ab6776 100644 (file)
@@ -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 {
index 87d646cf927879371d81193e6fd683af664e8e21..0fbad00d7b89cbcce3e581a5d740d42053d48635 100644 (file)
@@ -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);