File 1395-mnesia-test-improve-compile-times.patch of Package erlang
From 528d792094a761a8c2f989ee0029b8d5a6eb5e19 Mon Sep 17 00:00:00 2001
From: Dan Gudmundsson <dgud@erlang.org>
Date: Tue, 24 Feb 2026 14:42:52 +0100
Subject: [PATCH] mnesia: test improve compile times
Reduce macro size by invoke function instead.
---
lib/mnesia/test/mnesia_test_lib.erl | 39 +++++++++++++++++++++++++++
lib/mnesia/test/mnesia_test_lib.hrl | 41 +++++++----------------------
2 files changed, 48 insertions(+), 32 deletions(-)
diff --git a/lib/mnesia/test/mnesia_test_lib.erl b/lib/mnesia/test/mnesia_test_lib.erl
index 2c227bbb24..d2ab028f65 100644
--- a/lib/mnesia/test/mnesia_test_lib.erl
+++ b/lib/mnesia/test/mnesia_test_lib.erl
@@ -81,6 +81,7 @@
log/2,
log/4,
verbose/4,
+ match/4,
default_config/0,
diskless/1,
eval_test_case/3,
@@ -156,6 +157,44 @@ end_per_testcase(_Func, Config) ->
%% rpc:multicall(Nodes, mnesia, lkill, []),
Config.
+
+match(Expr, Match, File, Line) ->
+ try
+ AR_0 = Expr(),
+ case Match(AR_0) of
+ true ->
+ verbose("ok, ~n Result as expected:~p~n",[AR_0], File, Line),
+ {success, AR_0};
+ {false, Pattern} ->
+ error("Expected ~ts Not Matching Actual result was:~n ~p~n",
+ [Pattern, AR_0], File, Line),
+ {fail, AR_0}
+ end
+ catch
+ exit:{aborted, _ER_1}:Stacktrace when
+ element(1, _ER_1) =:= node_not_running;
+ element(1, _ER_1) =:= bad_commit;
+ element(1, _ER_1) =:= cyclic ->
+ %% Need to re-raise these to restart transaction
+ erlang:raise(exit, {aborted, _ER_1}, Stacktrace);
+ exit:AR_1:Stacktrace ->
+ AR_2 = {'EXIT', AR_1},
+ case Match(AR_2) of
+ true ->
+ verbose("ok, ~n Result as expected:~p~n",[AR_2], File, Line),
+ {success, AR_2};
+ {false, Pattern2} ->
+ error("Expected ~ts Not Matching Actual result was:~n ~p~n ~p~n",
+ [Pattern2, AR_2, Stacktrace], File, Line),
+ {fail, AR_2}
+ end;
+ T1:AR_1:Stacktrace ->
+ error("Not Matching Actual result was:~n ~p~n ~p~n",
+ [{T1,AR_1}, Stacktrace], File, Line),
+ {fail,{T1,AR_1}}
+ end.
+
+
%% Use ?log(Format, Args) as wrapper
log(Format, Args, LongFile, Line) ->
File = filename:basename(LongFile),
diff --git a/lib/mnesia/test/mnesia_test_lib.hrl b/lib/mnesia/test/mnesia_test_lib.hrl
index bb6683d553..1fb093681e 100644
--- a/lib/mnesia/test/mnesia_test_lib.hrl
+++ b/lib/mnesia/test/mnesia_test_lib.hrl
@@ -47,38 +47,15 @@
AcTuAlReS
end()).
--define(match(ExpectedRes,Expr),
- (_ = fun() ->
- try Expr of
- _AR_0 = ExpectedRes ->
- ?verbose("ok, ~n Result as expected:~p~n",[_AR_0]),
- {success,_AR_0};
- _AR_0 ->
- ?error("Not Matching Actual result was:~n ~p~n",[_AR_0]),
- {fail,_AR_0}
- catch
- exit:{aborted, _ER_1}:Stacktrace when
- element(1, _ER_1) =:= node_not_running;
- element(1, _ER_1) =:= bad_commit;
- element(1, _ER_1) =:= cyclic ->
- %% Need to re-raise these to restart transaction
- erlang:raise(exit, {aborted, _ER_1}, Stacktrace);
- exit:_AR_1:Stacktrace ->
- case fun(_AR_EXIT_) -> {'EXIT', _AR_EXIT_} end(_AR_1) of
- _AR_2 = ExpectedRes ->
- ?verbose("ok, ~n Result as expected:~p~n",[_AR_2]),
- {success,_AR_2};
- _AR_2 ->
- ?error("Not Matching Actual result was:~n ~p~n ~p~n",
- [_AR_2, Stacktrace]),
- {fail,_AR_2}
- end;
- _T1_:_AR_1:Stacktrace ->
- ?error("Not Matching Actual result was:~n ~p~n ~p~n",
- [{_T1_,_AR_1}, Stacktrace]),
- {fail,{_T1_,_AR_1}}
- end
- end())).
+-define(match(ExpectedRes, Expr),
+ mnesia_test_lib:match(fun() -> Expr end,
+ fun(__Res__) ->
+ case __Res__ of
+ ExpectedRes -> true;
+ _ -> {false, ??ExpectedRes}
+ end
+ end,
+ ?FILE, ?LINE)).
-define(match_inverse(NotExpectedRes,Expr),
(_ = fun() ->
--
2.51.0