[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Wed Mar 7 03:39:02 UTC 2018


The branch, master has been updated
       via  7f625f9 ldb_mod_op_test: Make sure that closing the database frees locks
       via  87708c3 ldb_mod_op_test: Add new nested transactions test
       via  7b8f540 selftest: Change name to sam.ldb to align with new partition module assumptions
       via  0009a12 ldb: Remove python warning in tests/python/index.py
      from  4014499 ldb_tdb: Build a key value operation library

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 7f625f9b27b229f74a88dfe6d86fadd060c47160
Author: Gary Lockyer <gary at catalyst.net.nz>
Date:   Tue Jan 23 11:03:16 2018 +1300

    ldb_mod_op_test: Make sure that closing the database frees locks
    
    Without the destructor firing, this test used to pass, but now we show
    that we must be able to open a new ldb handle.
    
    Signed-off-by: Gary Lockyer <gary at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Wed Mar  7 04:38:02 CET 2018 on sn-devel-144

commit 87708c3f91fbcbe224d2a71119a420b59c6e950e
Author: Gary Lockyer <gary at catalyst.net.nz>
Date:   Fri Jan 19 09:28:14 2018 +1300

    ldb_mod_op_test: Add new nested transactions test
    
    Signed-off-by: Gary Lockyer <gary at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 7b8f540b8d2132d9151fae4a3f2d6394fe8028ef
Author: Gary Lockyer <gary at catalyst.net.nz>
Date:   Thu Jan 11 14:27:40 2018 +1300

    selftest: Change name to sam.ldb to align with new partition module assumptions
    
    Signed-off-by: Gary Lockyer <gary at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

commit 0009a12b1f4798b4c83cd36efdede8db0ba7b790
Author: Gary Lockyer <gary at catalyst.net.nz>
Date:   Tue Mar 6 15:30:43 2018 +1300

    ldb: Remove python warning in tests/python/index.py
    
    Signed-off-by: Gary Lockyer <gary at catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 lib/ldb/tests/ldb_mod_op_test.c | 91 +++++++++++++++++++++++++++++++++++++++++
 lib/ldb/tests/python/index.py   |  2 +-
 python/samba/tests/samba3sam.py |  2 +-
 3 files changed, 93 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/ldb/tests/ldb_mod_op_test.c b/lib/ldb/tests/ldb_mod_op_test.c
index 5878143..b911302 100644
--- a/lib/ldb/tests/ldb_mod_op_test.c
+++ b/lib/ldb/tests/ldb_mod_op_test.c
@@ -626,6 +626,46 @@ static void test_transactions(void **state)
 	assert_int_equal(res->count, 0);
 }
 
+static void test_nested_transactions(void **state)
+{
+	int ret;
+	struct ldbtest_ctx *test_ctx = talloc_get_type_abort(*state,
+			struct ldbtest_ctx);
+	struct ldb_result *res;
+
+	/* start lev-0 transaction */
+	ret = ldb_transaction_start(test_ctx->ldb);
+	assert_int_equal(ret, 0);
+
+	add_keyval(test_ctx, "vegetable", "carrot");
+
+
+	/* start another lev-1 nested transaction */
+	ret = ldb_transaction_start(test_ctx->ldb);
+	assert_int_equal(ret, 0);
+
+	add_keyval(test_ctx, "fruit", "apple");
+
+	/* abort lev-1 nested transaction */
+	ret = ldb_transaction_cancel(test_ctx->ldb);
+	assert_int_equal(ret, 0);
+
+	/* commit lev-0 transaction */
+	ret = ldb_transaction_commit(test_ctx->ldb);
+	assert_int_equal(ret, 0);
+
+	res = get_keyval(test_ctx, "vegetable", "carrot");
+	assert_non_null(res);
+	assert_int_equal(res->count, 1);
+
+	/* This documents the current ldb behaviour,  i.e. nested
+	 * transactions are not supported.  And the cancellation of the nested
+	 * transaction has no effect.
+	 */
+	res = get_keyval(test_ctx, "fruit", "apple");
+	assert_non_null(res);
+	assert_int_equal(res->count, 1);
+}
 struct ldb_mod_test_ctx {
 	struct ldbtest_ctx *ldb_test_ctx;
 	const char *entry_dn;
@@ -3609,6 +3649,50 @@ static void test_ldb_guid_index_duplicate_dn_logging(void **state)
 	talloc_free(tmp_ctx);
 }
 
+static void test_ldb_talloc_destructor_transaction_cleanup(void **state)
+{
+	struct ldbtest_ctx *test_ctx = NULL;
+
+	test_ctx = talloc_get_type_abort(*state, struct ldbtest_ctx);
+	assert_non_null(test_ctx);
+
+	ldb_transaction_start(test_ctx->ldb);
+
+	/*
+	 * Trigger the destructor
+	 */
+	TALLOC_FREE(test_ctx->ldb);
+
+	/*
+	 * Now ensure that a new connection can be opened
+	 */
+	{
+		TALLOC_CTX *tctx = talloc_new(test_ctx);
+		struct ldbtest_ctx *ctx = talloc_zero(tctx, struct ldbtest_ctx);
+		struct ldb_dn *basedn;
+		struct ldb_result *result = NULL;
+		int ret;
+
+		ldbtest_setup((void *)&ctx);
+
+		basedn = ldb_dn_new_fmt(tctx, ctx->ldb, "dc=test");
+		assert_non_null(basedn);
+
+		ret = ldb_search(ctx->ldb,
+				 tctx,
+				 &result,
+				 basedn,
+				 LDB_SCOPE_BASE,
+				 NULL,
+				 NULL);
+		assert_int_equal(ret, 0);
+		assert_non_null(result);
+		assert_int_equal(result->count, 0);
+
+		ldbtest_teardown((void *)&ctx);
+	}
+}
+
 
 int main(int argc, const char **argv)
 {
@@ -3643,6 +3727,9 @@ int main(int argc, const char **argv)
 		cmocka_unit_test_setup_teardown(test_transactions,
 						ldbtest_setup,
 						ldbtest_teardown),
+		cmocka_unit_test_setup_teardown(test_nested_transactions,
+						ldbtest_setup,
+						ldbtest_teardown),
 		cmocka_unit_test_setup_teardown(test_ldb_modify_add_key,
 						ldb_modify_test_setup,
 						ldb_modify_test_teardown),
@@ -3765,6 +3852,10 @@ int main(int argc, const char **argv)
 			test_ldb_unique_index_duplicate_with_guid,
 			ldb_guid_index_test_setup,
 			ldb_guid_index_test_teardown),
+		cmocka_unit_test_setup_teardown(
+			test_ldb_talloc_destructor_transaction_cleanup,
+			ldbtest_setup,
+			ldbtest_teardown),
 	};
 
 	return cmocka_run_group_tests(tests, NULL, NULL);
diff --git a/lib/ldb/tests/python/index.py b/lib/ldb/tests/python/index.py
index f7d55f6..239b2bf 100755
--- a/lib/ldb/tests/python/index.py
+++ b/lib/ldb/tests/python/index.py
@@ -1005,7 +1005,7 @@ class MaxIndexKeyLengthTests(TestCase):
         res = self.l.search(
             base="DC=SAMBA,DC=ORG",
             expression="(notUnique=" + aa_gt_max.decode("ascii") + ")")
-        self.assertEquals(2, len(res))
+        self.assertEqual(2, len(res))
         self.assertTrue(
             contains(res, "OU=01,OU=MODIFY_NON_UNIQUE,DC=SAMBA,DC=ORG"))
         self.assertTrue(
diff --git a/python/samba/tests/samba3sam.py b/python/samba/tests/samba3sam.py
index 929523b..bfc7932 100644
--- a/python/samba/tests/samba3sam.py
+++ b/python/samba/tests/samba3sam.py
@@ -73,7 +73,7 @@ class MapBaseTestCase(TestCaseInTempDir):
         def make_s4dn(basedn, rdn):
             return "%s,%s" % (rdn, basedn)
 
-        self.ldbfile = os.path.join(self.tempdir, "test.ldb")
+        self.ldbfile = os.path.join(self.tempdir, "sam.ldb")
         self.ldburl = "tdb://" + self.ldbfile
 
         tempdir = self.tempdir


-- 
Samba Shared Repository



More information about the samba-cvs mailing list