1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00

r2553: fixed ldbtest so it passes the ldap schema restrictions and thus can be used on the ldap backend

(This used to be commit 9f230425a0)
This commit is contained in:
Andrew Tridgell 2004-09-23 02:14:43 +00:00 committed by Gerald (Jerry) Carter
parent 9a9dcc7250
commit e4cd51e17e

View File

@ -287,35 +287,28 @@ be indexed
*/
static void start_test_index(struct ldb_context **ldb)
{
const char *base = "ou=Ldb Test,ou=People,o=University of Michigan,c=US";
struct ldb_message msg;
struct ldb_message_element el[1];
struct ldb_val val[1];
struct ldb_message **res;
int ret;
printf("Starting index test\n");
memset(&msg, 0, sizeof(msg));
msg.dn = strdup("@INDEXLIST");
msg.num_elements = 1;
msg.elements = el;
el[0].flags = 0;
el[0].name = strdup("@IDXATTR");
el[0].num_values = 1;
el[0].values = val;
val[0].data = strdup("test");
val[0].length = strlen(val[0].data);
ldb_msg_add_string(*ldb, &msg, "@IDXATTR", strdup("uid"));
if (ldb_add(*ldb, &msg) != 0) {
printf("Add of %s failed - %s\n", msg.dn, ldb_errstring(*ldb));
exit(1);
}
msg.dn = strdup("test1");
el[0].name = strdup("test");
val[0].data = strdup("foo");
val[0].length = strlen(val[0].data);
memset(&msg, 0, sizeof(msg));
asprintf(&msg.dn, "cn=%s,%s", "test", base);
ldb_msg_add_string(*ldb, &msg, "cn", strdup("test"));
ldb_msg_add_string(*ldb, &msg, "sn", strdup("test"));
ldb_msg_add_string(*ldb, &msg, "uid", strdup("test"));
ldb_msg_add_string(*ldb, &msg, "objectClass", strdup("OpenLDAPperson"));
if (ldb_add(*ldb, &msg) != 0) {
printf("Add of %s failed - %s\n", msg.dn, ldb_errstring(*ldb));
@ -334,13 +327,13 @@ static void start_test_index(struct ldb_context **ldb)
exit(1);
}
ret = ldb_search(*ldb, NULL, LDB_SCOPE_SUBTREE, "test=foo", NULL, &res);
ret = ldb_search(*ldb, NULL, LDB_SCOPE_SUBTREE, "uid=test", NULL, &res);
if (ret != 1) {
printf("Should have found 1 record - found %d\n", ret);
exit(1);
}
if (ldb_delete(*ldb, "test1") != 0 ||
if (ldb_delete(*ldb, msg.dn) != 0 ||
ldb_delete(*ldb, "@INDEXLIST") != 0) {
printf("cleanup failed - %s\n", ldb_errstring(*ldb));
exit(1);