File 1392-kernel-test-Tweaked-label-analyzis.patch of Package erlang
From 634e444b74d73d38c1f60658dad1e54fca44b576 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Fri, 12 Dec 2025 17:19:46 +0100
Subject: [PATCH 2/3] [kernel|test] Tweaked label analyzis
---
lib/kernel/test/kernel_test_lib.erl | 79 ++++++++++++++++++++++-------
1 file changed, 60 insertions(+), 19 deletions(-)
diff --git a/lib/kernel/test/kernel_test_lib.erl b/lib/kernel/test/kernel_test_lib.erl
index 7e90f77d01..d91a05cc0a 100644
--- a/lib/kernel/test/kernel_test_lib.erl
+++ b/lib/kernel/test/kernel_test_lib.erl
@@ -2128,32 +2128,73 @@ ts_scale_factor() ->
0
end.
-simplify_label("Systemtap" ++ _) ->
- {host, systemtap};
-simplify_label("Meamax" ++ _) ->
- {host, meamax};
-simplify_label("Meamin" ++ _) ->
- {host, meamin};
-simplify_label("Cover" ++ _) ->
- {host, cover};
simplify_label(Label) ->
- case string:find(string:to_lower(Label), "docker") of
+ simplify_label2(
+ [ string:to_lower(S) || S <- string:tokens(Label, [$ ]) ]).
+
+simplify_label2([]) ->
+ {host, []};
+simplify_label2(LTokens) ->
+ try
+ begin
+ STokens = simplify_label3(LTokens, []),
+ {host, STokens}
+ end
+ catch
+ throw:{?MODULE, What} ->
+ What
+ end.
+
+simplify_label3([], Acc) ->
+ lists:reverse(Acc);
+simplify_label3([LToken|LTokens], Acc) ->
+ case simplify_label4(LToken) of
+ undefined ->
+ simplify_label3(LTokens, Acc);
+ Label ->
+ simplify_label3(LTokens, [Label|Acc])
+ end.
+
+simplify_label4("systemtap" ++ _) ->
+ systemtap;
+simplify_label4("meamax" ++ _) ->
+ meamax;
+simplify_label4("meamin" ++ _) ->
+ meamin;
+simplify_label4("cover" ++ _) ->
+ cover;
+simplify_label4(Label) ->
+ case string:find(Label, "docker") of
"docker" ++ _ ->
- docker;
+ throw({?MODULE, docker});
_ ->
- {host, undefined}
+ undefined
end.
label2factor(docker) ->
4;
-label2factor({host, meamax}) ->
- 2;
-label2factor({host, meamin}) ->
- 2;
-label2factor({host, cover}) ->
- 6;
-label2factor({host, _}) ->
- 0.
+label2factor({host, Labels}) when is_list(Labels) ->
+ %% We analyze them in "prio" order...
+ try
+ begin
+ label2factor(cover, 4, Labels),
+ label2factor(meamax, 2, Labels),
+ label2factor(meamin, 2, Labels),
+ 0
+ end
+ catch
+ throw:{?MODULE, Factor} when is_integer(Factor) andalso (Factor > 0) ->
+ Factor
+ end.
+
+label2factor(Label, Factor, Labels) ->
+ case lists:member(Label, Labels) of
+ true ->
+ throw({?MODULE, Factor});
+ false ->
+ ignore
+ end.
+
linux_info_lookup(Key, File) ->
LKey = string:to_lower(Key),
--
2.51.0