From 4894f47e2ec48dd36cac72608bfabde6fdfc7c6b Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 26 Jun 2017 13:34:21 +1200 Subject: [PATCH] dsdb: Add tests showing that the CN=CONFIGURATION partition is also locked Signed-off-by: Andrew Bartlett Reviewed-by: Stefan Metzmacher --- python/samba/tests/dsdb.py | 38 ++++++++++++++++++++++++++------ selftest/knownfail.d/ldb-locking | 2 ++ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/python/samba/tests/dsdb.py b/python/samba/tests/dsdb.py index cfe19093b9c..ce5f5991615 100644 --- a/python/samba/tests/dsdb.py +++ b/python/samba/tests/dsdb.py @@ -349,12 +349,7 @@ class DsdbTests(TestCase): self.assertEqual(got_pid, pid) - def test_full_db_lock1(self): - basedn = self.samdb.get_default_basedn() - backend_filename = "%s.ldb" % basedn.get_casefold() - backend_subpath = os.path.join("sam.ldb.d", - backend_filename) - backend_path = self.lp.private_path(backend_subpath) + def _test_full_db_lock1(self, backend_path): (r1, w1) = os.pipe() pid = os.fork() @@ -402,12 +397,25 @@ class DsdbTests(TestCase): self.assertTrue(os.WIFEXITED(status)) self.assertEqual(os.WEXITSTATUS(status), 0) - def test_full_db_lock2(self): + def test_full_db_lock1(self): basedn = self.samdb.get_default_basedn() backend_filename = "%s.ldb" % basedn.get_casefold() backend_subpath = os.path.join("sam.ldb.d", backend_filename) backend_path = self.lp.private_path(backend_subpath) + self._test_full_db_lock1(backend_path) + + + def test_full_db_lock1_config(self): + basedn = self.samdb.get_config_basedn() + backend_filename = "%s.ldb" % basedn.get_casefold() + backend_subpath = os.path.join("sam.ldb.d", + backend_filename) + backend_path = self.lp.private_path(backend_subpath) + self._test_full_db_lock1(backend_path) + + + def _test_full_db_lock2(self, backend_path): (r1, w1) = os.pipe() (r2, w2) = os.pipe() @@ -481,3 +489,19 @@ class DsdbTests(TestCase): self.assertEqual(got_pid, pid) self.assertTrue(os.WIFEXITED(status)) self.assertEqual(os.WEXITSTATUS(status), 0) + + def test_full_db_lock2(self): + basedn = self.samdb.get_default_basedn() + backend_filename = "%s.ldb" % basedn.get_casefold() + backend_subpath = os.path.join("sam.ldb.d", + backend_filename) + backend_path = self.lp.private_path(backend_subpath) + self._test_full_db_lock2(backend_path) + + def test_full_db_lock2_config(self): + basedn = self.samdb.get_config_basedn() + backend_filename = "%s.ldb" % basedn.get_casefold() + backend_subpath = os.path.join("sam.ldb.d", + backend_filename) + backend_path = self.lp.private_path(backend_subpath) + self._test_full_db_lock2(backend_path) diff --git a/selftest/knownfail.d/ldb-locking b/selftest/knownfail.d/ldb-locking index a84246e35d2..532bf82b0ad 100644 --- a/selftest/knownfail.d/ldb-locking +++ b/selftest/knownfail.d/ldb-locking @@ -1,3 +1,5 @@ samba.tests.dsdb.samba.tests.dsdb.DsdbTests.test_full_db_lock1\(ad_dc_ntvfs:local\) +samba.tests.dsdb.samba.tests.dsdb.DsdbTests.test_full_db_lock1_config\(ad_dc_ntvfs:local\) samba.tests.dsdb.samba.tests.dsdb.DsdbTests.test_full_db_lock2\(ad_dc_ntvfs:local\) +samba.tests.dsdb.samba.tests.dsdb.DsdbTests.test_full_db_lock2_config\(ad_dc_ntvfs:local\) samba.tests.dsdb.samba.tests.dsdb.DsdbTests.test_db_lock2\(ad_dc_ntvfs:local\)