Skip to content

Commit de3cfde

Browse files
authored
Merge pull request #259 from k0kubun/jit-chart-builder-bug
Fix chart builder logic for JIT
2 parents 9463ec8 + 35d57d3 commit de3cfde

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

app/services/chart_builder.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,17 @@ def initialize(benchmark_runs, benchmark_result_type)
3737
end
3838

3939
def build_columns
40+
keys = @benchmark_runs.map { |run| run.result.keys }.flatten.uniq
4041
@benchmark_runs.each do |benchmark_run|
4142
if block_given?
4243
version = yield(benchmark_run)
4344
@categories ||= []
4445
@categories << version if version != @categories.last
4546
end
4647

47-
benchmark_run.result.each do |key, value|
48+
keys.each do |key|
4849
@columns[key] ||= []
49-
@columns[key] << value.to_f
50+
@columns[key] << benchmark_run.result[key]&.to_f
5051
end
5152
end
5253

test/services/chart_builder_test.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
class ChartBuilderTest < ActiveSupport::TestCase
44
test '#build_columns' do
55
benchmark_run = create(:commit_benchmark_run, result: { 'some_time' => 5, 'some_other_time' => 5 })
6-
other_benchmark_run = create(:commit_benchmark_run, result: { 'some_time' => 5, 'some_other_time' => 5 })
6+
other_benchmark_run = create(:commit_benchmark_run, result: { 'some_time' => 5, 'some_other_time' => 5, 'jit_time' => 5 })
77
chart_builder = ChartBuilder.new([benchmark_run, other_benchmark_run], benchmark_run.benchmark_result_type)
88

99
chart_builder2 = chart_builder.build_columns do |benchmark_run|
@@ -19,7 +19,8 @@ class ChartBuilderTest < ActiveSupport::TestCase
1919
assert_equal(
2020
[
2121
{ name: 'some_time', data: [benchmark_run.result['some_time'].to_f, other_benchmark_run.result['some_time'].to_f] },
22-
{ name: 'some_other_time', data: [benchmark_run.result['some_other_time'].to_f, other_benchmark_run.result['some_other_time'].to_f] }
22+
{ name: 'some_other_time', data: [benchmark_run.result['some_other_time'].to_f, other_benchmark_run.result['some_other_time'].to_f] },
23+
{ name: 'jit_time', data: [nil, other_benchmark_run.result['jit_time'].to_f] },
2324
],
2425
chart_builder.columns
2526
)

0 commit comments

Comments
 (0)