Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
0913-mnesia-test-cuddling.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0913-mnesia-test-cuddling.patch of Package erlang
From a600fb1429bcc756f6b86f1d1c376682929a841d Mon Sep 17 00:00:00 2001 From: Dan Gudmundsson <dgud@erlang.org> Date: Thu, 10 Feb 2022 11:54:08 +0100 Subject: [PATCH 2/3] mnesia: test cuddling Add debug info and other minor tweaks. Fix boolean test in isolation suite. --- lib/mnesia/test/mnesia_dirty_access_test.erl | 10 ++++++++-- lib/mnesia/test/mnesia_isolation_test.erl | 4 ++-- lib/mnesia/test/mt | 17 +++++++++-------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/mnesia/test/mnesia_dirty_access_test.erl b/lib/mnesia/test/mnesia_dirty_access_test.erl index f761bfa58b..d1606838fa 100644 --- a/lib/mnesia/test/mnesia_dirty_access_test.erl +++ b/lib/mnesia/test/mnesia_dirty_access_test.erl @@ -791,7 +791,9 @@ update_trans(Tab, Key, Acc) -> Res = (catch mnesia:read({Tab, Key})), case Res of [{Tab, Key, Extra, Acc}] -> - mnesia:write({Tab,Key,Extra, Acc+1}); + Meta = {mnesia:table_info(Tab, where_to_commit), + mnesia:table_info(Tab, commit_work)}, + mnesia:write({Tab, Key, [Meta|Extra], Acc+1}); Val -> {read, Val, {acc, Acc}} end @@ -977,6 +979,10 @@ move_table(CallFrom, FromNode, ToNode, [Node1, Node2, Node3], Def) -> % Due to limitations in the current dirty_ops this can wrong from time to time! verify_oids(Tab, N1, N2, N3, R1, R2, R3) -> io:format("DEBUG 1=>~p 2=>~p 3=>~p~n", [R1,R2,R3]), + {info,_,_} = rpc:call(N1, mnesia_tm, get_info, [2000]), + {info,_,_} = rpc:call(N2, mnesia_tm, get_info, [2000]), + {info,_,_} = rpc:call(N3, mnesia_tm, get_info, [2000]), + ?match([{_, _, _, R1}], rpc:call(N1, mnesia, dirty_read, [{Tab, 1}])), ?match([{_, _, _, R1}], rpc:call(N2, mnesia, dirty_read, [{Tab, 1}])), ?match([{_, _, _, R1}], rpc:call(N3, mnesia, dirty_read, [{Tab, 1}])), @@ -989,7 +995,7 @@ verify_oids(Tab, N1, N2, N3, R1, R2, R3) -> insert(_Tab, 0) -> ok; insert(Tab, N) when N > 0 -> - ok = mnesia:sync_dirty(fun() -> false = mnesia:is_transaction(), mnesia:write({Tab, N, N, 0}) end), + ok = mnesia:sync_dirty(fun() -> false = mnesia:is_transaction(), mnesia:write({Tab, N, [], 0}) end), insert(Tab, N-1). diff --git a/lib/mnesia/test/mnesia_isolation_test.erl b/lib/mnesia/test/mnesia_isolation_test.erl index a65bfd31e1..98ab972fc7 100644 --- a/lib/mnesia/test/mnesia_isolation_test.erl +++ b/lib/mnesia/test/mnesia_isolation_test.erl @@ -632,8 +632,8 @@ sticky_sync(Config) when is_list(Config) -> {Time, ok} = timer:tc(fun() -> lists:foreach(TestFun, lists:seq(1,200)) end), io:format("200 trans done in ~p ~n",[Time div (1000000)]), case (Time div (1000000)) < 20 of - false -> lists:foreach(TestFun, lists:seq(201,1000)); - true -> ignore %% Some virtual test machines are really slow.. + true -> lists:foreach(TestFun, lists:seq(201,1000)); + false -> ignore %% Some virtual test machines are really slow.. end, io:format("Written, check content~n",[]), All = fun() -> mnesia:select(dc, [ {{dc, '_', 0}, [] ,['$_']} ]) end, diff --git a/lib/mnesia/test/mt b/lib/mnesia/test/mt index b169734f56..d7361479cd 100755 --- a/lib/mnesia/test/mt +++ b/lib/mnesia/test/mt @@ -61,12 +61,9 @@ case $MT_TERM in exec="-e" esac -$MT_TERM $geom1 $title a1 $exec $erlcmd1 & -$MT_TERM $geom2 $title a2 $exec $erlcmd2 & - rm "$latest" 2>/dev/null -ln -s "$log" "$latest" touch "$log" +ln -s "$log" "$latest" echo "$erlcmd1" echo "" @@ -74,10 +71,14 @@ echo "$erlcmd2" echo "" echo "$erlcmd" echo "" + +$MT_TERM $geom0 $title a $exec script -c "$erlcmd" -f $log & + +$MT_TERM $geom1 $title a1 $exec $erlcmd1 & +$MT_TERM $geom2 $title a2 $exec $erlcmd2 & + echo "Give the following command in order to see the outcome from node a@$h"":" echo "" -echo " less test_log$$" - -$MT_TERM $geom0 $title a $exec script -f -c "$erlcmd" "$log" & -tail -f "$log" | egrep 'Eval|<>ERROR|NYI' +echo " less $log" +echo "tail -f "$log" | egrep 'Eval|<>ERROR|NYI'" -- 2.34.1
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