svn commit: samba r25948 - in branches/SAMBA_4_0: testdata/samba3 testprogs/ejs

abartlet at samba.org abartlet at samba.org
Wed Nov 14 03:51:02 GMT 2007


Author: abartlet
Date: 2007-11-14 03:51:02 +0000 (Wed, 14 Nov 2007)
New Revision: 25948

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25948

Log:
Fix up the samba3sam test (which is very fragile) to work with the new
restrictions imposed by the samldb module.

This module is worth keeping, because when we go back to do more
extensive backend mapping, the testing of this module shows it is
still possible.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif
   branches/SAMBA_4_0/testprogs/ejs/samba3sam.js


Changeset:
Modified: branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif
===================================================================
--- branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif	2007-11-14 03:10:03 UTC (rev 25947)
+++ branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif	2007-11-14 03:51:02 UTC (rev 25948)
@@ -75,127 +75,4 @@
 vendorName: Samba Team (http://samba.org)
 vendorVersion: ${VERSION}
 
-dn: CN=Templates
-objectClass: top
-objectClass: container
-cn: Templates
-description: Container for SAM account templates
-instanceType: 4
-showInAdvancedViewOnly: TRUE
-systemFlags: 2348810240
-objectCategory: CN=Container,CN=Schema,CN=Configuration,${BASEDN}
-isCriticalSystemObject: TRUE
 
-###
-# note! the template users must not match normal searches. Be careful
-# with what classes you put them in
-###
-
-dn: CN=TemplateUser,CN=Templates
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
-objectClass: Template
-objectClass: userTemplate
-cn: TemplateUser
-instanceType: 4
-userAccountControl: 514
-badPwdCount: 0
-codePage: 0
-countryCode: 0
-badPasswordTime: 0
-lastLogoff: 0
-lastLogon: 0
-pwdLastSet: 0
-primaryGroupID: 513
-accountExpires: -1
-logonCount: 0
-sAMAccountType: 805306368
-objectCategory: CN=Person,CN=Schema,CN=Configuration,${BASEDN}
-
-dn: CN=TemplateComputer,CN=Templates
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
-objectClass: Template
-objectClass: userTemplate
-cn: TemplateComputer
-instanceType: 4
-userAccountControl: 4098
-badPwdCount: 0
-codePage: 0
-countryCode: 0
-badPasswordTime: 0
-lastLogoff: 0
-lastLogon: 0
-pwdLastSet: 0
-primaryGroupID: 513
-accountExpires: -1
-logonCount: 0
-sAMAccountType: 805306369
-objectCategory: CN=Computer,CN=Schema,CN=Configuration,${BASEDN}
-
-dn: CN=TemplateTrustingDomain,CN=Templates
-objectClass: top
-objectClass: Template
-objectClass: userTemplate
-cn: TemplateTrustingDomain
-instanceType: 4
-userAccountControl: 2080
-badPwdCount: 0
-codePage: 0
-countryCode: 0
-badPasswordTime: 0
-lastLogoff: 0
-lastLogon: 0
-primaryGroupID: 513
-accountExpires: -1
-logonCount: 0
-sAMAccountType: 805306370
-
-dn: CN=TemplateGroup,CN=Templates
-objectClass: top
-objectClass: Template
-objectClass: groupTemplate
-cn: TemplateGroup
-instanceType: 4
-groupType: -2147483646
-sAMAccountType: 268435456
-objectCategory: CN=Group,CN=Schema,CN=Configuration,${BASEDN}
-
-# Currently this isn't used, we don't have a way to detect it different from an incoming alias
-#
-# dn: CN=TemplateAlias,CN=Templates
-# objectClass: top
-# objectClass: Template
-# objectClass: aliasTemplate
-# cn: TemplateAlias
-# instanceType: 4
-# groupType: -2147483644
-# sAMAccountType: 268435456
-
-dn: CN=TemplateForeignSecurityPrincipal,CN=Templates
-objectClass: top
-objectClass: Template
-objectClass: foreignSecurityPrincipalTemplate
-cn: TemplateForeignSecurityPrincipal
-instanceType: 4
-showInAdvancedViewOnly: TRUE
-objectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,${BASEDN}
-
-dn: CN=TemplateSecret,CN=Templates
-objectClass: top
-objectClass: leaf
-objectClass: Template
-objectClass: secretTemplate
-cn: TemplateSecret
-instanceType: 4
-
-dn: CN=TemplateTrustedDomain,CN=Templates
-objectClass: top
-objectClass: leaf
-objectClass: Template
-objectClass: trustedDomainTemplate
-cn: TemplateTrustedDomain
-instanceType: 4
-

Modified: branches/SAMBA_4_0/testprogs/ejs/samba3sam.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/samba3sam.js	2007-11-14 03:10:03 UTC (rev 25947)
+++ branches/SAMBA_4_0/testprogs/ejs/samba3sam.js	2007-11-14 03:51:02 UTC (rev 25948)
@@ -263,8 +263,21 @@
 	var dn;
 	var attrs;
 
-	/* Add a set of split records */
+
 	var ldif = "
+dn: " + "sambaDomainName=TESTS," + s3.BASEDN + "
+objectclass: sambaDomain
+objectclass: top
+sambaSID: S-1-5-21-4231626423-2410014848-2360679739
+sambaNextRid: 2000
+sambaDomainName: TESTS"
+	ldif = substitute_var(ldif, s3);
+	assert(ldif != undefined);
+	var ok = s3.db.add(ldif);
+	assert(ok.error == 0);
+
+	printf("Add a set of split records");
+	var ldif = "
 dn: " + s4.dn("cn=X") + "
 objectClass: user
 cn: X
@@ -297,6 +310,7 @@
 lastLogon: z
 description: y
 ";
+
 	ldif = substitute_var(ldif, s4);
 	assert(ldif != undefined);
 	var ok = ldb.add(ldif);
@@ -305,7 +319,8 @@
 		assert(ok.error == 0);
 	}
 
-	/* Add a set of remote records */
+	println("Add a set of remote records");
+
 	var ldif = "
 dn: " + s3.dn("cn=A") + "
 objectClass: posixAccount
@@ -429,7 +444,7 @@
 	*/
 	res = ldb.search("(objectSid=*)", NULL, ldb. SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 2);
+	assert(res.msgs.length == 3);
 	assert(res.msgs[0].dn == s4.dn("cn=X"));
 	assert(res.msgs[0].dnsHostName == "x");
 	assert(res.msgs[0].lastLogon == "x");
@@ -610,7 +625,7 @@
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(!(revision=x))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 4);
+	assert(res.msgs.length == 5);
 	assert(res.msgs[0].dn == s4.dn("cn=B"));
 	assert(res.msgs[0].dnsHostName == undefined);
 	assert(res.msgs[0].lastLogon == "y");
@@ -628,7 +643,7 @@
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(!(description=x))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 2);
+	assert(res.msgs.length == 3);
 	assert(res.msgs[0].dn == s4.dn("cn=Z"));
 	assert(res.msgs[0].dnsHostName == "z");
 	assert(res.msgs[0].lastLogon == "z");
@@ -640,7 +655,7 @@
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(!(&(codePage=x)(revision=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 4);
+	assert(res.msgs.length == 5);
 	assert(res.msgs[0].dn == s4.dn("cn=B"));
 	assert(res.msgs[0].dnsHostName == undefined);
 	assert(res.msgs[0].lastLogon == "y");
@@ -658,7 +673,7 @@
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(!(&(lastLogon=x)(description=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 4);
+	assert(res.msgs.length == 5);
 	assert(res.msgs[0].dn == s4.dn("cn=Y"));
 	assert(res.msgs[0].dnsHostName == "y");
 	assert(res.msgs[0].lastLogon == "y");
@@ -676,7 +691,7 @@
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(!(&(codePage=x)(description=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 4);
+	assert(res.msgs.length == 5);
 	assert(res.msgs[0].dn == s4.dn("cn=B"));
 	assert(res.msgs[0].dnsHostName == undefined);
 	assert(res.msgs[0].lastLogon == "y");
@@ -711,7 +726,7 @@
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(!(|(badPwdCount=x)(lastLogon=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 3);
+	assert(res.msgs.length == 4);
 	assert(res.msgs[0].dn == s4.dn("cn=Y"));
 	assert(res.msgs[0].dnsHostName == "y");
 	assert(res.msgs[0].lastLogon == "y");
@@ -726,7 +741,7 @@
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(!(|(revision=x)(lastLogon=y)))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 3);
+	assert(res.msgs.length == 4);
 	assert(res.msgs[0].dn == s4.dn("cn=A"));
 	assert(res.msgs[0].dnsHostName == undefined);
 	assert(res.msgs[0].lastLogon == "x");
@@ -737,11 +752,11 @@
 	assert(res.msgs[2].dnsHostName == undefined);
 	assert(res.msgs[2].lastLogon == "z");
 
-	/* Search by complex parse tree */
+	println("Search by complex parse tree");
 	attrs = new Array("dnsHostName", "lastLogon");
 	res = ldb.search("(|(&(revision=x)(dnsHostName=x))(!(&(description=x)(nextRid=y)))(badPwdCount=y))", NULL, ldb.SCOPE_DEFAULT, attrs);
 	assert(res.error == 0);
-	assert(res.msgs.length == 5);
+	assert(res.msgs.length == 6);
 	assert(res.msgs[0].dn == s4.dn("cn=B"));
 	assert(res.msgs[0].dnsHostName == undefined);
 	assert(res.msgs[0].lastLogon == "y");
@@ -1174,18 +1189,28 @@
 samba3.db = ldb_init();
 samba3.dn = make_dn;
 
+var templates = new Object("templates partition info");
+templates.file = prefix + "/" + "templates.ldb";
+templates.url = "tdb://" + templates.file;
+templates.BASEDN = "cn=templates";
+templates.db = ldb_init();
+
 sys.unlink(ldbfile);
 sys.unlink(samba3.file);
+sys.unlink(templates.file);
 sys.unlink(samba4.file);
 
 var ok = ldb.connect(ldburl);
 assert(ok);
 var ok = samba3.db.connect(samba3.url);
 assert(ok);
+var ok = templates.db.connect(templates.url);
+assert(ok);
 var ok = samba4.db.connect(samba4.url);
 assert(ok);
 
 setup_data(samba3, sys.file_load(datadir + "/" + "samba3.ldif"));
+setup_data(templates, sys.file_load(datadir + "/" + "provision_samba3sam_templates.ldif"));
 setup_modules(ldb, samba3, samba4, sys.file_load(datadir + "/" + "provision_samba3sam.ldif"));
 
 ldb = ldb_init();
@@ -1197,6 +1222,7 @@
 
 sys.unlink(ldbfile);
 sys.unlink(samba3.file);
+sys.unlink(templates.file);
 sys.unlink(samba4.file);
 
 ldb = ldb_init();
@@ -1205,10 +1231,14 @@
 samba3.db = ldb_init();
 var ok = samba3.db.connect(samba3.url);
 assert(ok);
+templates.db = ldb_init();
+var ok = templates.db.connect(templates.url);
+assert(ok);
 samba4.db = ldb_init();
 var ok = samba4.db.connect(samba4.url);
 assert(ok);
 
+setup_data(templates, sys.file_load(datadir + "/" + "provision_samba3sam_templates.ldif"));
 setup_modules(ldb, samba3, samba4, sys.file_load(datadir + "provision_samba3sam.ldif"));
 
 ldb = ldb_init();



More information about the samba-cvs mailing list