File 8241-Don-t-crash-when-test-summary-contains-more-values-t.patch of Package erlang
From ac02757d413f231994d63e06f8c444ab48c55dbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20W=C4=85sowski?= <michal@erlang.org>
Date: Mon, 16 Dec 2024 18:37:40 +0100
Subject: [PATCH] Don't crash when test summary contains more values than we
want
---
lib/common_test/src/ct_logs.erl | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/lib/common_test/src/ct_logs.erl b/lib/common_test/src/ct_logs.erl
index 71d821681b..045cdd37d8 100644
--- a/lib/common_test/src/ct_logs.erl
+++ b/lib/common_test/src/ct_logs.erl
@@ -77,6 +77,8 @@
-define(abs(Name), filename:absname(Name)).
-define(now, os:timestamp()).
+-define(expected_summary_size, 5).
+-define(minimum_summary_size, 3).
-record(log_cache, {version,
all_runs = [],
@@ -1889,12 +1891,8 @@ year() ->
count_cases(Dir) ->
SumFile = filename:join(Dir, ?run_summary),
case read_summary(SumFile, [summary]) of
- {ok, [{Succ,Fail,Skip}]} ->
- {Succ,Fail,Skip,undefined,undefined};
- {ok, [{Succ,Fail,UserSkip,AutoSkip}]} ->
- {Succ,Fail,UserSkip,AutoSkip,undefined};
{ok, [Summary]} ->
- Summary;
+ get_expected_num_of_summary_values(Summary);
{error, _} ->
LogFile = filename:join(Dir, ?suitelog_name),
case file:read_file(LogFile) of
@@ -1933,6 +1931,16 @@ read_summary(Name, Keys) ->
{error, Reason}
end.
+get_expected_num_of_summary_values(Summary) when tuple_size(Summary) > ?expected_summary_size ->
+ List = tuple_to_list(Summary),
+ list_to_tuple(lists:sublist(List, ?expected_summary_size));
+get_expected_num_of_summary_values(Summary) when tuple_size(Summary) == ?expected_summary_size ->
+ Summary;
+get_expected_num_of_summary_values(Summary) when tuple_size(Summary) >= ?minimum_summary_size ->
+ List = tuple_to_list(Summary),
+ Pad = lists:duplicate(?expected_summary_size - length(List), undefined),
+ list_to_tuple(lists:append(List, Pad)).
+
count_cases1("=failed" ++ Rest, {Success, _Fail, UserSkip, AutoSkip, ElapsedTime}) ->
{NextLine, Count} = get_number(Rest),
count_cases1(NextLine, {Success, Count, UserSkip, AutoSkip, ElapsedTime});
--
2.43.0