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