Skip to content

Commit 254f234

Browse files
authored
Merge duplicate entries in results.json (#53334)
Should resolve #53198 🙂
1 parent c23be9a commit 254f234

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

test/buildkitetestjson.jl

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,31 @@ end
123123

124124
function collect_results!(results::Vector{Dict{String, Any}}, testset::Test.DefaultTestSet, prefix::String="")
125125
common_data = result_dict(testset, prefix)
126+
result_offset = length(results) + 1
127+
result_counts = Dict{Tuple{String, String}, Int}()
126128
for (i, result) in enumerate(testset.results)
127129
if result isa Test.Result
128-
push!(results, merge(common_data, result_dict(result)))
130+
rdata = result_dict(result)
131+
rid = (rdata["location"], rdata["result"])
132+
if haskey(result_counts, rid)
133+
result_counts[rid] += 1
134+
else
135+
result_counts[rid] = 1
136+
push!(results, merge(common_data, rdata))
137+
end
129138
elseif result isa Test.DefaultTestSet
130139
collect_results!(results, result, common_data["scope"])
131140
end
132141
end
142+
# Modify names to hold `result_counts`
143+
for i in result_offset:length(results)
144+
result = results[i]
145+
rid = (result["location"], result["result"])
146+
if get(result_counts, rid, 0) > 1
147+
result["name"] = replace(result["name"], r"^([^:]):" =>
148+
SubstitutionString("\\1 (x$(result_counts[rid])):"))
149+
end
150+
end
133151
results
134152
end
135153

0 commit comments

Comments
 (0)