tombstones-expunge: Add a test for deleting links to recycled objects
authorGarming Sam <garming@catalyst.net.nz>
Thu, 20 Oct 2016 22:40:51 +0000 (11:40 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 2 Nov 2016 20:58:24 +0000 (21:58 +0100)
Currently this fails because we rely on a GUID DN, which fails to
resolve in the case that the GUID no longer exists in the database (i.e.
when that object has been purged after 6 months).

The tests use a made up extended DN built from fred where the GUID has
been tweaked.

Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12385

selftest/knownfail
source4/selftest/provisions/release-4-5-0-pre1/add-dangling-link.ldif [new file with mode: 0644]
source4/selftest/provisions/release-4-5-0-pre1/expected-expunge-output.txt
source4/selftest/provisions/release-4-5-0-pre1/expected-match-rule-links.ldif
testprogs/blackbox/tombstones-expunge.sh

index 38b5f51bb369bdf8545c462b83333a2cb3dd01db..de7e920de08a777394df9b57d3fe3868326e27c3 100644 (file)
 ^samba4.rpc.echo.*on.*with.object.echo.sinkdata.*nt4_dc
 ^samba4.rpc.echo.*on.*with.object.echo.addone.*nt4_dc
 ^samba4.rpc.echo.*on.*ncacn_ip_tcp.*with.object.*nt4_dc
+^samba4.blackbox.tombstones-expunge.release-4-5-0-pre1.tombstones_expunge
diff --git a/source4/selftest/provisions/release-4-5-0-pre1/add-dangling-link.ldif b/source4/selftest/provisions/release-4-5-0-pre1/add-dangling-link.ldif
new file mode 100644 (file)
index 0000000..67a294d
--- /dev/null
@@ -0,0 +1,5 @@
+# fred-clone is a duplication of CN=fred,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp with the GUID slightly modified and a different DN
+dn: CN=Domain Users,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
+changetype: modify
+add: member
+member: <GUID=2302a65c-5b43-4ca9-850e-12d4a712cfb5>;<RMD_ADDTIME=131116485990000000>;<RMD_CHANGETIME=131116485990000000>;<RMD_FLAGS=1>;<RMD_INVOCID=4e4496a3-7fb8-4f97-8a33-d238db8b5e2d>;<RMD_LOCAL_USN=3745>;<RMD_ORIGINATING_USN=3745>;<RMD_VERSION=1>;<SID=S-1-5-21-4177067393-1453636373-93818738-1111>;CN=fred-clone,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
index bcc59553afc93513c1fed93fec31ed0be18d78ad..68262571ab00cd7f974002fceb9cc055a251d213 100644 (file)
@@ -1 +1 @@
-Removed 7 objects and 1 links successfully
+Removed 7 objects and 2 links successfully
index 2b2f02128a7b64836dffd308eccd59c3e9046378..1553c1bc1b3b18b48aa863f721837bd86d806693 100644 (file)
@@ -4,31 +4,35 @@ member: CN=fred,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=user1,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 
 # record 2
+dn: CN=Domain Users,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
+member: CN=fred-clone,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
+
+# record 3
 dn: CN=ddg\0ADEL:fb8c2fe3-5448-43de-99f9-e1d3b9357cfc,CN=Deleted Objects,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User1 UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 
-# record 3
+# record 4
 dn: CN=dsg\0ADEL:6d66d0ef-cad7-4e5d-b1b6-4a233a21c269,CN=Deleted Objects,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User1 UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 
-# record 4
+# record 5
 dn: CN=gdg\0ADEL:e0f581e7-14ee-4fc2-839c-8f46f581c72a,CN=Deleted Objects,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User1 UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 
-# record 5
+# record 6
 dn: CN=gsg\0ADEL:91aa85cc-fc19-4b8c-9fc7-aaba425439c7,CN=Deleted Objects,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User1 UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 
-# record 6
+# record 7
 dn: CN=udg\0ADEL:7cff5537-51b1-4d26-a295-0225dbea8525,CN=Deleted Objects,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User1 UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 
-# record 7
+# record 8
 dn: CN=usg\0ADEL:d012e8f5-a4bd-40ea-a2a1-68ff2508847d,CN=Deleted Objects,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
 member: CN=User1 UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp
@@ -42,6 +46,6 @@ ref: ldap:///DC=DomainDnsZones,DC=release-4-5-0-pre1,DC=samba,DC=corp
 # Referral
 ref: ldap:///DC=ForestDnsZones,DC=release-4-5-0-pre1,DC=samba,DC=corp
 
-# returned 10 records
-# 7 entries
+# returned 11 records
+# 8 entries
 # 3 referrals
index 49a50730330afaaf4cbdb758843a765b87fc5102..33cb0b1be13170b1b215143ca347c61a4d71ac8e 100755 (executable)
@@ -68,6 +68,14 @@ tombstones_expunge() {
     fi
 }
 
+add_dangling_link() {
+    ldif=$release_dir/add-dangling-link.ldif
+    TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-5-0-PRE1,DC%3DSAMBA,DC%3DCORP.ldb $ldif
+    if [ "$?" != "0" ]; then
+       return 1
+    fi
+}
+
 add_two_more_users() {
     ldif=$release_dir/add-two-more-users.ldif
     TZ=UTC $ldbadd -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $ldif
@@ -172,6 +180,7 @@ if [ -d $release_dir ]; then
     testit $RELEASE undump
     testit "add_two_more_users" add_two_more_users
     testit "add_four_more_links" add_four_more_links
+    testit "add_dangling_link" add_dangling_link
     testit "remove_one_link" remove_one_link
     testit "remove_one_user" remove_one_user
     testit "check_match_rule_links" check_match_rule_links