@@ -123,13 +123,31 @@ end
123123
124124function 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
134152end
135153
0 commit comments