-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathbenchmark_run_test.rb
75 lines (62 loc) · 2.84 KB
/
benchmark_run_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
require 'test_helper'
class BenchmarkRunTest < ActiveSupport::TestCase
test '.sort_by_initiator_version' do
releases = [
create(:release, version: 'githubruby', benchmark_runs: [create(:release_benchmark_run)]),
create(:release, version: '1.2.1', benchmark_runs: [create(:release_benchmark_run)]),
create(:release, version: '1.1.10', benchmark_runs: [create(:release_benchmark_run)]),
create(:release, version: '1.1.1', benchmark_runs: [create(:release_benchmark_run)])
]
benchmark_runs = releases.map(&:benchmark_runs).flatten!
assert_equal(
%w{1.1.1 1.1.10 1.2.1 githubruby},
BenchmarkRun.sort_by_initiator_version(benchmark_runs).map!(&:initiator).map(&:version)
)
end
test '.latest_commit_benchmark_run' do
benchmark_result_type = create(:benchmark_result_type)
benchmark_type = create(:benchmark_type)
commit = create(:commit)
later_commit = create(:commit, created_at: Time.zone.now + 1.day)
benchmark_run = create(:commit_benchmark_run,
benchmark_result_type: benchmark_result_type,
benchmark_type: benchmark_type,
initiator: commit
)
benchmark_run2 = create(:commit_benchmark_run,
benchmark_result_type: benchmark_result_type,
benchmark_type: benchmark_type,
initiator: later_commit
)
assert_equal(
benchmark_run2,
BenchmarkRun.latest_commit_benchmark_run(benchmark_type, benchmark_result_type)
)
end
test '.fetch_release_benchmark_runs' do
script_url = 'https://raw.githubusercontent.com/org/repo/master/script/bench.rb'
ruby = create(:repo, name: 'ruby')
rails = create(:repo, name: 'rails')
ruby_release = create(:release, repo: ruby, version: '2.6.2')
rails_release = create(:release, repo: rails, version: '6.0.0')
ruby_benchmark_type = create(:benchmark_type, category: 'discourse_home', repo: ruby, script_url: script_url)
rails_benchmark_type = create(:benchmark_type, category: 'discourse_home', repo: rails, script_url: script_url)
benchmark_result_type = create(:benchmark_result_type)
ruby_benchmark_run = create(:release_benchmark_run,
benchmark_result_type: benchmark_result_type,
benchmark_type: ruby_benchmark_type,
initiator: ruby_release
)
rails_benchmark_run = create(:release_benchmark_run,
benchmark_result_type: benchmark_result_type,
benchmark_type: rails_benchmark_type,
initiator: rails_release
)
ruby_result = BenchmarkRun.fetch_release_benchmark_runs(ruby_benchmark_type, benchmark_result_type)
assert_equal(1, ruby_result.size)
assert_equal(ruby_benchmark_run.id, ruby_result.first.id)
rails_result = BenchmarkRun.fetch_release_benchmark_runs(rails_benchmark_type, benchmark_result_type)
assert_equal(1, rails_result.size)
assert_equal(rails_benchmark_run.id, rails_result.first.id)
end
end