Skip to content

Commit f6cd3f1

Browse files
committed
Don't crash when test summary contains more values than we want
1 parent 0418c10 commit f6cd3f1

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

lib/common_test/src/ct_logs.erl

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@
7676
-define(abs(Name), filename:absname(Name)).
7777

7878
-define(now, os:timestamp()).
79+
-define(expected_summary_size, 4).
80+
-define(minimum_summary_size, 3).
7981

8082
-record(log_cache, {version,
8183
all_runs = [],
@@ -1819,10 +1821,8 @@ year() ->
18191821
count_cases(Dir) ->
18201822
SumFile = filename:join(Dir, ?run_summary),
18211823
case read_summary(SumFile, [summary]) of
1822-
{ok, [{Succ,Fail,Skip}]} ->
1823-
{Succ,Fail,Skip,undefined};
18241824
{ok, [Summary]} ->
1825-
Summary;
1825+
get_expected_num_of_summary_values(Summary);
18261826
{error, _} ->
18271827
LogFile = filename:join(Dir, ?suitelog_name),
18281828
case file:read_file(LogFile) of
@@ -1861,6 +1861,16 @@ read_summary(Name, Keys) ->
18611861
{error, Reason}
18621862
end.
18631863

1864+
get_expected_num_of_summary_values(Summary) when tuple_size(Summary) > ?expected_summary_size ->
1865+
List = tuple_to_list(Summary),
1866+
list_to_tuple(lists:sublist(List, ?expected_summary_size));
1867+
get_expected_num_of_summary_values(Summary) when tuple_size(Summary) == ?expected_summary_size ->
1868+
Summary;
1869+
get_expected_num_of_summary_values(Summary) when tuple_size(Summary) >= ?minimum_summary_size ->
1870+
List = tuple_to_list(Summary),
1871+
Pad = lists:duplicate(?expected_summary_size - length(List), undefined),
1872+
list_to_tuple(lists:append(List, Pad)).
1873+
18641874
count_cases1("=failed" ++ Rest, {Success, _Fail, UserSkip,AutoSkip}) ->
18651875
{NextLine, Count} = get_number(Rest),
18661876
count_cases1(NextLine, {Success, Count, UserSkip,AutoSkip});

0 commit comments

Comments
 (0)