Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
6282-Added-a-simple-test-for-obtaining-active-t...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 6282-Added-a-simple-test-for-obtaining-active-transaction.patch of Package erlang
From f96063e39a41800d896ebb65843b3e4efdf6fbc0 Mon Sep 17 00:00:00 2001 From: piotr <p.skonieczka@simplito.com> Date: Tue, 25 Oct 2022 12:17:04 +0200 Subject: [PATCH 2/2] Added a simple test for obtaining active transaction counters. `mnesia_tm:get_transactions()` and `mnesia_tm:get_transactions_count()` are invoked within a transaction context to make sure at least this one transaction is still in progress. --- lib/mnesia/test/mnesia_trans_access_test.erl | 26 ++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/lib/mnesia/test/mnesia_trans_access_test.erl b/lib/mnesia/test/mnesia_trans_access_test.erl index b33b807bfc..d5bbaf9729 100644 --- a/lib/mnesia/test/mnesia_trans_access_test.erl +++ b/lib/mnesia/test/mnesia_trans_access_test.erl @@ -28,7 +28,7 @@ -export([write/1, read/1, wread/1, delete/1, delete_object_bag/1, delete_object_set/1, - match_object/1, select/1, select14/1, all_keys/1, transaction/1, + match_object/1, select/1, select14/1, all_keys/1, transaction/1, transaction_counters/1, basic_nested/1, mix_of_nested_activities/1, nested_trans_both_ok/1, nested_trans_child_dies/1, nested_trans_parent_dies/1, nested_trans_both_dies/1, @@ -65,7 +65,7 @@ end_per_testcase(Func, Conf) -> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% all() -> [write, read, wread, delete, delete_object_bag, delete_object_set, - match_object, select, select14, all_keys, transaction, + match_object, select, select14, all_keys, transaction, transaction_counters, {group, nested_activities}, {group, index_tabs}, {group, index_lifecycle}]. @@ -546,6 +546,28 @@ transaction(Config) when is_list(Config) -> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +transaction_counters(suite) -> []; +transaction_counters(Config) -> + Nodes = ?acquire_nodes(1, Config), + + {atomic, {{Participants1, Coordinators1}, {Participants2, Coordinators2}}} = + mnesia:transaction(fun get_transactions_counters/0), + + ?match(Coordinators1, Coordinators2), + ?match(Coordinators1, 1), + ?match(Participants1, Participants2), + ?match(Participants1, 0), + + ?verify_mnesia(Nodes, []). + +get_transactions_counters() -> + {count_sides(mnesia_tm:get_transactions()), mnesia_tm:get_transactions_count()}. + +count_sides(TransactionsList) -> + lists:foldl( + fun({_Tid, _Pid, participant}, {Participants, Coordinators}) -> {Participants + 1, Coordinators}; + ({_Tid, _Pid, coordinator}, {Participants, Coordinators}) -> {Participants, Coordinators + 1} + end, {0, 0}, TransactionsList). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor