summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-11-22 21:28:13 +0000
committerRémy Coutable <remy@rymai.me>2017-11-22 21:28:13 +0000
commit50a5d638e56443ffc7d4d08b3706b9c63e372dfa (patch)
tree6ad05b3d5984832187425d70ba45ba4ba4a25bc0
parentf5534059011b6752c28d7d6d7538897d6da369ae (diff)
parent11d0787961b33efdbfdad9bf0bbc48afecc3cc53 (diff)
downloadgitlab-ce-50a5d638e56443ffc7d4d08b3706b9c63e372dfa.tar.gz
Merge branch '32620-speed-up-unicorn-specs' into 'master'
Speed up Unicorn specs by using a dummy Rack application instead of GitLab Closes #32620 See merge request gitlab-org/gitlab-ce!15548
-rw-r--r--app/controllers/unicorn_test_controller.rb14
-rw-r--r--config/routes.rb2
-rw-r--r--config/routes/test.rb2
-rw-r--r--lib/gitlab/path_regex.rb1
-rw-r--r--lib/tasks/brakeman.rake2
-rw-r--r--spec/unicorn/unicorn_spec.rb21
6 files changed, 19 insertions, 23 deletions
diff --git a/app/controllers/unicorn_test_controller.rb b/app/controllers/unicorn_test_controller.rb
deleted file mode 100644
index ed04bd1f77d..00000000000
--- a/app/controllers/unicorn_test_controller.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-# :nocov:
-if Rails.env.test?
- class UnicornTestController < ActionController::Base
- def pid
- render plain: Process.pid.to_s
- end
-
- def kill
- Process.kill(params[:signal], Process.pid)
- render plain: 'Bye!'
- end
- end
-end
-# :nocov:
diff --git a/config/routes.rb b/config/routes.rb
index fc13dc4865f..4f27fea0e92 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -100,7 +100,5 @@ Rails.application.routes.draw do
root to: "root#index"
- draw :test if Rails.env.test?
-
get '*unmatched_route', to: 'application#route_not_found'
end
diff --git a/config/routes/test.rb b/config/routes/test.rb
deleted file mode 100644
index ac477cdbbbc..00000000000
--- a/config/routes/test.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-get '/unicorn_test/pid' => 'unicorn_test#pid'
-post '/unicorn_test/kill' => 'unicorn_test#kill'
diff --git a/lib/gitlab/path_regex.rb b/lib/gitlab/path_regex.rb
index 9a91f8bf96a..7e5dfd33502 100644
--- a/lib/gitlab/path_regex.rb
+++ b/lib/gitlab/path_regex.rb
@@ -51,7 +51,6 @@ module Gitlab
slash-command-logo.png
snippets
u
- unicorn_test
unsubscribes
uploads
users
diff --git a/lib/tasks/brakeman.rake b/lib/tasks/brakeman.rake
index 99b3168d9eb..2301ec9b228 100644
--- a/lib/tasks/brakeman.rake
+++ b/lib/tasks/brakeman.rake
@@ -2,7 +2,7 @@ desc 'Security check via brakeman'
task :brakeman do
# We get 0 warnings at level 'w3' but we would like to reach 'w2'. Merge
# requests are welcome!
- if system(*%w(brakeman --no-progress --skip-files lib/backup/repository.rb,app/controllers/unicorn_test_controller.rb -w3 -z))
+ if system(*%w(brakeman --no-progress --skip-files lib/backup/repository.rb -w3 -z))
puts 'Security check succeed'
else
puts 'Security check failed'
diff --git a/spec/unicorn/unicorn_spec.rb b/spec/unicorn/unicorn_spec.rb
index 79a566975df..a4cf479a339 100644
--- a/spec/unicorn/unicorn_spec.rb
+++ b/spec/unicorn/unicorn_spec.rb
@@ -37,7 +37,22 @@ describe 'Unicorn' do
config_path = 'tmp/tests/unicorn.rb'
File.write(config_path, config_lines.join("\n") + "\n")
- cmd = %W[unicorn -E test -c #{config_path} #{Rails.root.join('config.ru')}]
+ rackup_path = 'tmp/tests/config.ru'
+ File.write(rackup_path, <<~EOS)
+ app =
+ proc do |env|
+ if env['REQUEST_METHOD'] == 'GET'
+ [200, {}, [Process.pid]]
+ else
+ Process.kill(env['QUERY_STRING'], Process.pid)
+ [200, {}, ['Bye!']]
+ end
+ end
+
+ run app
+ EOS
+
+ cmd = %W[unicorn -E test -c #{config_path} #{rackup_path}]
@unicorn_master_pid = spawn(*cmd)
wait_unicorn_boot!(@unicorn_master_pid, ready_file)
WebMock.allow_net_connect!
@@ -45,14 +60,14 @@ describe 'Unicorn' do
%w[SIGQUIT SIGTERM SIGKILL].each do |signal|
it "has a worker that self-terminates on signal #{signal}" do
- response = Excon.get('unix:///unicorn_test/pid', socket: @socket_path)
+ response = Excon.get('unix://', socket: @socket_path)
expect(response.status).to eq(200)
worker_pid = response.body.to_i
expect(worker_pid).to be > 0
begin
- Excon.post('unix:///unicorn_test/kill', socket: @socket_path, body: "signal=#{signal}")
+ Excon.post("unix://?#{signal}", socket: @socket_path)
rescue Excon::Error::Socket
# The connection may be closed abruptly
end