derailed_benchmarks 1.4.3 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/check_changelog.yml +11 -8
  3. data/.travis.yml +9 -7
  4. data/Appraisals +16 -16
  5. data/CHANGELOG.md +29 -1
  6. data/README.md +14 -4
  7. data/derailed_benchmarks.gemspec +4 -3
  8. data/gemfiles/rails_5_1.gemfile +3 -1
  9. data/gemfiles/rails_5_2.gemfile +3 -3
  10. data/lib/derailed_benchmarks.rb +2 -1
  11. data/lib/derailed_benchmarks/core_ext/kernel_require.rb +29 -24
  12. data/lib/derailed_benchmarks/git/commit.rb +36 -0
  13. data/lib/derailed_benchmarks/git/in_path.rb +59 -0
  14. data/lib/derailed_benchmarks/git/switch_project.rb +128 -0
  15. data/lib/derailed_benchmarks/git_switch_project.rb +1 -0
  16. data/lib/derailed_benchmarks/load_tasks.rb +11 -4
  17. data/lib/derailed_benchmarks/require_tree.rb +11 -1
  18. data/lib/derailed_benchmarks/{stats_in_file.rb → stats_for_file.rb} +8 -2
  19. data/lib/derailed_benchmarks/stats_from_dir.rb +68 -13
  20. data/lib/derailed_benchmarks/tasks.rb +34 -63
  21. data/lib/derailed_benchmarks/version.rb +1 -1
  22. data/test/derailed_benchmarks/core_ext/kernel_require_test.rb +70 -11
  23. data/test/derailed_benchmarks/git_switch_project_test.rb +83 -0
  24. data/test/derailed_benchmarks/require_tree_test.rb +1 -1
  25. data/test/derailed_benchmarks/stats_from_dir_test.rb +57 -9
  26. data/test/fixtures/require/autoload_child.rb +5 -0
  27. data/test/fixtures/require/autoload_parent.rb +8 -0
  28. data/test/fixtures/require/child_one.rb +1 -1
  29. data/test/fixtures/require/child_two.rb +1 -1
  30. data/test/fixtures/require/load_child.rb +3 -0
  31. data/test/fixtures/require/load_parent.rb +5 -0
  32. data/test/fixtures/require/parent_one.rb +1 -1
  33. data/test/integration/tasks_test.rb +43 -5
  34. data/test/rails_app/config/application.rb +2 -0
  35. data/test/test_helper.rb +6 -1
  36. metadata +46 -12
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class GitSwitchProjectTest < ActiveSupport::TestCase
6
+ test "tells me when it's not pointing at a git project" do
7
+ exception = assert_raises {
8
+ DerailedBenchmarks::Git::SwitchProject.new(path: "/dev/null")
9
+ }
10
+ assert_includes(exception.message, '.git directory')
11
+ end
12
+
13
+ test "dirty gemspec cleaning" do
14
+ Dir.mktmpdir do |dir|
15
+ run!("git clone https://github.com/sharpstone/default_ruby #{dir} 2>&1 && cd #{dir} && git checkout 6e642963acec0ff64af51bd6fba8db3c4176ed6e 2>&1 && git checkout -b mybranch 2>&1")
16
+ run!("cd #{dir} && echo lol > foo.gemspec && git add .")
17
+
18
+ io = StringIO.new
19
+ project = DerailedBenchmarks::Git::SwitchProject.new(path: dir, io: io)
20
+
21
+ assert project.dirty?
22
+ refute project.clean?
23
+
24
+ project.restore_branch_on_return do
25
+ project.commits.map(&:checkout!)
26
+ end
27
+
28
+ assert_includes io.string, "Bundler modifies gemspec files"
29
+ assert_includes io.string, "Applying stash"
30
+ end
31
+ end
32
+
33
+ test "works on a git repo" do
34
+ Dir.mktmpdir do |dir|
35
+ run!("git clone https://github.com/sharpstone/default_ruby #{dir} 2>&1 && cd #{dir} && git checkout 6e642963acec0ff64af51bd6fba8db3c4176ed6e 2>&1 && git checkout -b mybranch 2>&1")
36
+
37
+ # finds shas when none given
38
+ project = DerailedBenchmarks::Git::SwitchProject.new(path: dir)
39
+
40
+ assert_equal ["6e642963acec0ff64af51bd6fba8db3c4176ed6e", "da748a59340be8b950e7bbbfb32077eb67d70c3c"], project.commits.map(&:ref)
41
+ first_commit = project.commits.first
42
+
43
+ assert_equal "CI test support", first_commit.description
44
+ assert_equal "6e64296", first_commit.short_sha
45
+ assert_equal "/dev/null/6e642963acec0ff64af51bd6fba8db3c4176ed6e.bench.txt", first_commit.log.to_s
46
+ assert_equal DateTime.parse("Tue, 14 Apr 2020 13:26:03 -0500"), first_commit.time
47
+
48
+ assert_equal "mybranch", project.current_branch_or_sha
49
+
50
+ # Finds shas when 1 is given
51
+ project = DerailedBenchmarks::Git::SwitchProject.new(path: dir, ref_array: ["da748a59340be8b950e7bbbfb32077eb67d70c3c"])
52
+
53
+ assert_equal ["da748a59340be8b950e7bbbfb32077eb67d70c3c", "5c09f748957d2098182762004adee27d1ff83160"], project.commits.map(&:ref)
54
+
55
+
56
+ # Returns correct refs if given
57
+ project = DerailedBenchmarks::Git::SwitchProject.new(path: dir, ref_array: ["da748a59340be8b950e7bbbfb32077eb67d70c3c", "9b19275a592f148e2a53b87ead4ccd8c747539c9"])
58
+
59
+ assert_equal ["da748a59340be8b950e7bbbfb32077eb67d70c3c", "9b19275a592f148e2a53b87ead4ccd8c747539c9"], project.commits.map(&:ref)
60
+
61
+ first_commit = project.commits.first
62
+
63
+ first_commit.checkout!
64
+
65
+ assert_equal first_commit.short_sha, project.current_branch_or_sha
66
+
67
+ # Test restore_branch_on_return
68
+ project.restore_branch_on_return(quiet: true) do
69
+ project.commits.last.checkout!
70
+
71
+ assert_equal project.commits.last.short_sha, project.current_branch_or_sha
72
+ end
73
+
74
+ assert_equal project.commits.first.short_sha, project.current_branch_or_sha
75
+
76
+ exception = assert_raise {
77
+ DerailedBenchmarks::Git::SwitchProject.new(path: dir, ref_array: ["6e642963acec0ff64af51bd6fba8db3c4176ed6e", "mybranch"])
78
+ }
79
+
80
+ assert_includes(exception.message, 'Duplicate SHA resolved "6e64296"')
81
+ end
82
+ end
83
+ end
@@ -9,7 +9,7 @@ class RequireTree < ActiveSupport::TestCase
9
9
  end
10
10
 
11
11
  def teardown
12
- DerailedBenchmarks::RequireTree.const_set("REQUIRED_BY", {})
12
+ DerailedBenchmarks::RequireTree.reset!
13
13
  end
14
14
 
15
15
  test "default_cost" do
@@ -3,6 +3,19 @@
3
3
  require 'test_helper'
4
4
 
5
5
  class StatsFromDirTest < ActiveSupport::TestCase
6
+ test "empty files" do
7
+ Dir.mktmpdir do |dir|
8
+ dir = Pathname.new(dir)
9
+ branch_info = {}
10
+ branch_info["loser"] = { desc: "Old commit", time: Time.now, file: dir.join("loser"), name: "loser" }
11
+ branch_info["winner"] = { desc: "I am the new commit", time: Time.now + 1, file: dir.join("winner"), name: "winner" }
12
+ stats = DerailedBenchmarks::StatsFromDir.new(branch_info).call
13
+ io = StringIO.new
14
+ stats.call.banner(io: io) # Doesn't error
15
+ assert_equal "", io.read
16
+ end
17
+ end
18
+
6
19
  test "that it works" do
7
20
  dir = fixtures_dir("stats/significant")
8
21
  branch_info = {}
@@ -19,7 +32,7 @@ class StatsFromDirTest < ActiveSupport::TestCase
19
32
  assert_equal "loser", oldest.name
20
33
 
21
34
  assert_in_delta 0.26, stats.d_max, 0.01
22
- assert_in_delta 0.1730818382602285, stats.d_critical, 0.00001
35
+ assert_in_delta 0.2145966026289347, stats.d_critical, 0.00001
23
36
  assert_equal true, stats.significant?
24
37
 
25
38
  format = DerailedBenchmarks::StatsFromDir::FORMAT
@@ -27,14 +40,49 @@ class StatsFromDirTest < ActiveSupport::TestCase
27
40
  assert_equal "0.6147", format % stats.percent_faster
28
41
 
29
42
  assert_equal "11.3844", format % newest.median
30
- end
43
+ end
31
44
 
32
- test "banner faster" do
45
+ test "histogram output" do
46
+ dir = fixtures_dir("stats/significant")
47
+ branch_info = {}
48
+ branch_info["loser"] = { desc: "Old commit", time: Time.now, file: dir.join("loser.bench.txt"), name: "loser" }
49
+ branch_info["winner"] = { desc: "I am the new commit", time: Time.now + 1, file: dir.join("winner.bench.txt"), name: "winner" }
50
+ stats = DerailedBenchmarks::StatsFromDir.new(branch_info).call
51
+
52
+ io = StringIO.new
53
+ stats.call.banner(io)
54
+
55
+ assert_match(/11\.2 , 11\.28/, io.string)
56
+ assert_match(/11\.8 , 11\.88/, io.string)
57
+ end
58
+
59
+
60
+ test "alignment" do
33
61
  dir = fixtures_dir("stats/significant")
34
62
  branch_info = {}
35
63
  branch_info["loser"] = { desc: "Old commit", time: Time.now, file: dir.join("loser.bench.txt"), name: "loser" }
36
64
  branch_info["winner"] = { desc: "I am the new commit", time: Time.now + 1, file: dir.join("winner.bench.txt"), name: "winner" }
37
65
  stats = DerailedBenchmarks::StatsFromDir.new(branch_info).call
66
+ def stats.percent_faster
67
+ -0.1
68
+ end
69
+
70
+ def stats.x_faster
71
+ 0.9922
72
+ end
73
+
74
+ assert_equal 1, stats.align.length
75
+ end
76
+
77
+ test "banner faster" do
78
+ dir = fixtures_dir("stats/significant")
79
+ Branch_info = {}
80
+
81
+ require 'ostruct'
82
+ commits = []
83
+ commits << OpenStruct.new({ desc: "Old commit", time: Time.now, file: dir.join("loser.bench.txt"), ref: "loser", short_sha: "aaaaa" })
84
+ commits << OpenStruct.new({ desc: "I am the new commit", time: Time.now + 1, file: dir.join("winner.bench.txt"), ref: "winner", short_sha: "bbbbb" })
85
+ stats = DerailedBenchmarks::StatsFromDir.new(commits).call
38
86
  newest = stats.newest
39
87
  oldest = stats.oldest
40
88
 
@@ -55,12 +103,12 @@ class StatsFromDirTest < ActiveSupport::TestCase
55
103
  11.0
56
104
  end
57
105
 
58
- expected = <<~EOM
59
- [winner] "I am the new commit" - (10.5 seconds)
106
+ expected = <<-EOM
107
+ [bbbbb] (10.5000 seconds) "I am the new commit" ref: "winner"
60
108
  FASTER 🚀🚀🚀 by:
61
109
  1.0476x [older/newer]
62
110
  4.5455% [(older - newer) / older * 100]
63
- [loser] "Old commit" - (11.0 seconds)
111
+ [aaaaa] (11.0000 seconds) "Old commit" ref: "loser"
64
112
  EOM
65
113
 
66
114
  actual = StringIO.new
@@ -86,12 +134,12 @@ EOM
86
134
  11.0
87
135
  end
88
136
 
89
- expected = <<~EOM
90
- [loser] "I am the new commit" - (11.0 seconds)
137
+ expected = <<-EOM
138
+ [loser] (11.0000 seconds) "I am the new commit" ref: "loser"
91
139
  SLOWER 🐢🐢🐢 by:
92
140
  0.9545x [older/newer]
93
141
  -4.7619% [(older - newer) / older * 100]
94
- [winner] "Old commit" - (10.5 seconds)
142
+ [winner] (10.5000 seconds) "Old commit" ref: "winner"
95
143
  EOM
96
144
 
97
145
  actual = StringIO.new
@@ -0,0 +1,5 @@
1
+ @retained = String.new("")
2
+ 1_000_000.times.map { @retained << "A" }
3
+
4
+ module AutoLoadChild
5
+ end
@@ -0,0 +1,8 @@
1
+ @retained = String.new("")
2
+ 1_000_000.times.map { @retained << "A" }
3
+
4
+ autoload :AutoLoadChild, File.join(__dir__, 'autoload_child.rb')
5
+
6
+ if AutoLoadChild
7
+ # yay
8
+ end
@@ -1,4 +1,4 @@
1
1
  class ChildOne
2
- @retained = +""
2
+ @retained = String.new("")
3
3
  50_000.times.map { @retained << "A" }
4
4
  end
@@ -1,5 +1,5 @@
1
1
  class ChildTwo
2
- @retained = +""
2
+ @retained = String.new("")
3
3
  200_000.times.map { @retained << "A" }
4
4
  end
5
5
 
@@ -0,0 +1,3 @@
1
+ @retained = String.new("")
2
+ 1_000_000.times.map { @retained << "A" }
3
+
@@ -0,0 +1,5 @@
1
+ @retained = String.new("")
2
+ 1_000_000.times.map { @retained << "A" }
3
+
4
+ load File.join(__dir__, "load_child.rb")
5
+
@@ -1,5 +1,5 @@
1
1
  class ParentOne
2
- @retained = +""
2
+ @retained = String.new("")
3
3
  1_000_000.times.map { @retained << "A" }
4
4
  end
5
5
  require File.expand_path('../child_one.rb', __FILE__)
@@ -13,27 +13,58 @@ class TasksTest < ActiveSupport::TestCase
13
13
  FileUtils.remove_entry_secure(rails_app_path('tmp'))
14
14
  end
15
15
 
16
+ def run!(cmd)
17
+ puts "Running: #{cmd}"
18
+ out = `#{cmd}`
19
+ raise "Could not run #{cmd}, output: #{out}" unless $?.success?
20
+ out
21
+ end
22
+
16
23
  def rake(cmd, options = {})
17
24
  assert_success = options.key?(:assert_success) ? options[:assert_success] : true
18
25
  env = options[:env] || {}
19
26
  env_string = env.map {|key, value| "#{key.shellescape}=#{value.to_s.shellescape}" }.join(" ")
20
27
  cmd = "env #{env_string} bundle exec rake -f perf.rake #{cmd} --trace"
21
28
  puts "Running: #{cmd}"
22
- result = `cd '#{rails_app_path}' && #{cmd}`
23
- if assert_success
24
- assert $?.success?, "Expected '#{cmd}' to return a success status.\nOutput: #{result}"
29
+ result = Bundler.with_original_env { `cd '#{rails_app_path}' && #{cmd} 2>&1` }
30
+ if assert_success && !$?.success?
31
+ puts result
32
+ raise "Expected '#{cmd}' to return a success status.\nOutput: #{result}"
25
33
  end
26
34
 
27
35
  result
28
36
  end
29
37
 
30
- test 'library_branches' do
38
+ test 'non-rails library with branch specified' do
39
+ skip unless ENV['USING_RAILS_WICKED_BRANCH']
40
+
41
+ gem_path = run!("bundle info wicked --path")
42
+ env = { "TEST_COUNT" => 10, "DERAILED_SCRIPT_COUNT" => 2, "DERAILED_PATH_TO_LIBRARY" => gem_path}
43
+ puts rake "perf:library", { env: env }
44
+ end
45
+
46
+ test 'rails perf:library from git' do
47
+ # BUNDLE_GEMFILE="$(pwd)/gemfiles/rails_git.gemfile" bundle exec m test/integration/tasks_test.rb:<linenumber>
48
+
31
49
  skip unless ENV['USING_RAILS_GIT']
32
50
 
33
- env = { "TEST_COUNT" => 10, "DERAILED_SCRIPT_COUNT" => 2, "SHAS_TO_TEST" => "3054e1d584e7eca110c69a1f8423f2e0866abbf9,80f989aecece1a2b1830e9c953e5887421b52d3c"}
51
+ env = { "TEST_COUNT" => 2, "DERAILED_SCRIPT_COUNT" => 2, "SHAS_TO_TEST" => "3054e1d584e7eca110c69a1f8423f2e0866abbf9,80f989aecece1a2b1830e9c953e5887421b52d3c"}
34
52
  puts rake "perf:library", { env: env }
35
53
  end
36
54
 
55
+ test "rails perf:library with bad script" do
56
+ # BUNDLE_GEMFILE="$(pwd)/gemfiles/rails_git.gemfile" bundle exec m test/integration/tasks_test.rb:<linenumber>
57
+
58
+ skip unless ENV['USING_RAILS_GIT']
59
+
60
+ error = assert_raises {
61
+ env = { "DERAILED_SCRIPT" => "nopenopenop", "TEST_COUNT" => 2, "DERAILED_SCRIPT_COUNT" => 2, "SHAS_TO_TEST" => "3054e1d584e7eca110c69a1f8423f2e0866abbf9,80f989aecece1a2b1830e9c953e5887421b52d3c"}
62
+ puts rake "perf:library", { env: env }
63
+ }
64
+
65
+ assert error.message =~ /nopenopenop:( command)? not found/, "Expected #{error.message} to include /nopenopenop: (command)? not found/ but it did not"
66
+ end
67
+
37
68
  test 'hitting authenticated devise apps' do
38
69
  env = { "PATH_TO_HIT" => "authenticated", "USE_AUTH" => "true", "TEST_COUNT" => "2" }
39
70
  result = rake 'perf:test', env: env
@@ -55,6 +86,13 @@ class TasksTest < ActiveSupport::TestCase
55
86
  rake "perf:test"
56
87
  end
57
88
 
89
+ test 'app' do
90
+ skip unless ENV['USING_RAILS_GIT']
91
+ run!("cd #{rails_app_path} && git init . && git add . && git commit -m first && git commit --allow-empty -m second")
92
+ env = { "TEST_COUNT" => 10, "DERAILED_SCRIPT_COUNT" => 2 }
93
+ puts rake "perf:app", { env: env }
94
+ end
95
+
58
96
  test 'TEST_COUNT' do
59
97
  result = rake "perf:test", env: { "TEST_COUNT" => 1 }
60
98
  assert_match "1 derailed requests", result
@@ -13,6 +13,8 @@ require 'devise'
13
13
 
14
14
  module Dummy
15
15
  class Application < Rails::Application
16
+ config.load_defaults Rails.version.to_f
17
+
16
18
  config.action_mailer.default_url_options = { host: 'localhost:3000' }
17
19
 
18
20
  # Settings in config/environments/* take precedence over those specified here.
@@ -51,7 +51,6 @@ class ActiveSupport::IntegrationCase
51
51
  end
52
52
  end
53
53
 
54
-
55
54
  def fixtures_dir(name = "")
56
55
  root_path("test/fixtures").join(name)
57
56
  end
@@ -63,3 +62,9 @@ end
63
62
  def rails_app_path(name = "")
64
63
  root_path("test/rails_app").join(name)
65
64
  end
65
+
66
+ def run!(cmd)
67
+ output = `#{cmd}`
68
+ raise "Cmd #{cmd} failed:\n#{output}" unless $?.success?
69
+ output
70
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: derailed_benchmarks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.3
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Schneeman
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-17 00:00:00.000000000 Z
11
+ date: 2020-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: heapy
@@ -104,16 +104,22 @@ dependencies:
104
104
  name: thor
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - "~>"
107
+ - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0.19'
110
+ - - "<"
111
+ - !ruby/object:Gem::Version
112
+ version: '2'
110
113
  type: :runtime
111
114
  prerelease: false
112
115
  version_requirements: !ruby/object:Gem::Requirement
113
116
  requirements:
114
- - - "~>"
117
+ - - ">="
115
118
  - !ruby/object:Gem::Version
116
119
  version: '0.19'
120
+ - - "<"
121
+ - !ruby/object:Gem::Version
122
+ version: '2'
117
123
  - !ruby/object:Gem::Dependency
118
124
  name: ruby-statistics
119
125
  requirement: !ruby/object:Gem::Requirement
@@ -128,6 +134,20 @@ dependencies:
128
134
  - - ">="
129
135
  - !ruby/object:Gem::Version
130
136
  version: '2.1'
137
+ - !ruby/object:Gem::Dependency
138
+ name: mini_histogram
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: 0.2.1
144
+ type: :runtime
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: 0.2.1
131
151
  - !ruby/object:Gem::Dependency
132
152
  name: capybara
133
153
  requirement: !ruby/object:Gem::Requirement
@@ -165,7 +185,7 @@ dependencies:
165
185
  version: '3'
166
186
  - - "<="
167
187
  - !ruby/object:Gem::Version
168
- version: '6'
188
+ version: '7'
169
189
  type: :development
170
190
  prerelease: false
171
191
  version_requirements: !ruby/object:Gem::Requirement
@@ -175,7 +195,7 @@ dependencies:
175
195
  version: '3'
176
196
  - - "<="
177
197
  - !ruby/object:Gem::Version
178
- version: '6'
198
+ version: '7'
179
199
  - !ruby/object:Gem::Dependency
180
200
  name: devise
181
201
  requirement: !ruby/object:Gem::Requirement
@@ -237,18 +257,27 @@ files:
237
257
  - lib/derailed_benchmarks/auth_helper.rb
238
258
  - lib/derailed_benchmarks/auth_helpers/devise.rb
239
259
  - lib/derailed_benchmarks/core_ext/kernel_require.rb
260
+ - lib/derailed_benchmarks/git/commit.rb
261
+ - lib/derailed_benchmarks/git/in_path.rb
262
+ - lib/derailed_benchmarks/git/switch_project.rb
263
+ - lib/derailed_benchmarks/git_switch_project.rb
240
264
  - lib/derailed_benchmarks/load_tasks.rb
241
265
  - lib/derailed_benchmarks/require_tree.rb
266
+ - lib/derailed_benchmarks/stats_for_file.rb
242
267
  - lib/derailed_benchmarks/stats_from_dir.rb
243
- - lib/derailed_benchmarks/stats_in_file.rb
244
268
  - lib/derailed_benchmarks/tasks.rb
245
269
  - lib/derailed_benchmarks/version.rb
246
270
  - test/derailed_benchmarks/core_ext/kernel_require_test.rb
271
+ - test/derailed_benchmarks/git_switch_project_test.rb
247
272
  - test/derailed_benchmarks/require_tree_test.rb
248
273
  - test/derailed_benchmarks/stats_from_dir_test.rb
249
274
  - test/derailed_test.rb
275
+ - test/fixtures/require/autoload_child.rb
276
+ - test/fixtures/require/autoload_parent.rb
250
277
  - test/fixtures/require/child_one.rb
251
278
  - test/fixtures/require/child_two.rb
279
+ - test/fixtures/require/load_child.rb
280
+ - test/fixtures/require/load_parent.rb
252
281
  - test/fixtures/require/parent_one.rb
253
282
  - test/fixtures/require/raise_child.rb
254
283
  - test/fixtures/require/relative_child.rb
@@ -308,7 +337,7 @@ homepage: https://github.com/schneems/derailed_benchmarks
308
337
  licenses:
309
338
  - MIT
310
339
  metadata: {}
311
- post_install_message:
340
+ post_install_message:
312
341
  rdoc_options: []
313
342
  require_paths:
314
343
  - lib
@@ -316,24 +345,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
316
345
  requirements:
317
346
  - - ">="
318
347
  - !ruby/object:Gem::Version
319
- version: 2.1.0
348
+ version: 2.2.0
320
349
  required_rubygems_version: !ruby/object:Gem::Requirement
321
350
  requirements:
322
351
  - - ">="
323
352
  - !ruby/object:Gem::Version
324
353
  version: '0'
325
354
  requirements: []
326
- rubygems_version: 3.0.3
327
- signing_key:
355
+ rubygems_version: 3.1.2
356
+ signing_key:
328
357
  specification_version: 4
329
358
  summary: Benchmarks designed to performance test your ENTIRE site
330
359
  test_files:
331
360
  - test/derailed_benchmarks/core_ext/kernel_require_test.rb
361
+ - test/derailed_benchmarks/git_switch_project_test.rb
332
362
  - test/derailed_benchmarks/require_tree_test.rb
333
363
  - test/derailed_benchmarks/stats_from_dir_test.rb
334
364
  - test/derailed_test.rb
365
+ - test/fixtures/require/autoload_child.rb
366
+ - test/fixtures/require/autoload_parent.rb
335
367
  - test/fixtures/require/child_one.rb
336
368
  - test/fixtures/require/child_two.rb
369
+ - test/fixtures/require/load_child.rb
370
+ - test/fixtures/require/load_parent.rb
337
371
  - test/fixtures/require/parent_one.rb
338
372
  - test/fixtures/require/raise_child.rb
339
373
  - test/fixtures/require/relative_child.rb