From 05b81cdc3b025d51093da26b3aed6b3ad3d5b424 Mon Sep 17 00:00:00 2001 From: Gregory Burd Date: Mon, 28 Nov 2011 16:22:08 -0500 Subject: [PATCH] Test bdb:del within a transaction, then abort. --- test/bdberl_SUITE.erl | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test/bdberl_SUITE.erl b/test/bdberl_SUITE.erl index 4e58611..372255c 100644 --- a/test/bdberl_SUITE.erl +++ b/test/bdberl_SUITE.erl @@ -45,7 +45,9 @@ all() -> get_should_return_a_value_when_getting_a_valid_record, put_should_succeed_with_manual_transaction, put_should_rollback_with_failed_manual_transaction, -% del_should_remove_a_value, %TODO: why is this disabled +% TODO: Why do these two cause everything to lock up?! +% del_should_remove_a_value, +% aborted_del_should_not_remove_a_value, transaction_should_commit_on_success, transaction_should_abort_on_exception, transaction_should_abort_on_user_abort, @@ -141,6 +143,16 @@ del_should_remove_a_value(Config) -> ok = bdberl:del(Db, mykey), not_found = bdberl:get(Db, mykey). +aborted_del_should_not_remove_a_value(Config) -> + Db = ?config(db, Config), + ok = bdberl:put(Db, mykey, avalue), + {ok, avalue} = bdberl:get(Db, mykey), + ok = bdberl:txn_begin(), + ok = bdberl:del(Db, mykey), + not_found = bdberl:get(Db, mykey), + ok = bdberl:txn_abort(), + {ok, avalue} = bdberl:get(Db, mykey). + transaction_should_commit_on_success(Config) -> Db = ?config(db, Config), F = fun() -> bdberl:put(Db, mykey, avalue) end,