diff options
author | Rémy Coutable <remy@rymai.me> | 2017-11-22 21:28:13 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-11-22 21:28:13 +0000 |
commit | 50a5d638e56443ffc7d4d08b3706b9c63e372dfa (patch) | |
tree | 6ad05b3d5984832187425d70ba45ba4ba4a25bc0 | |
parent | f5534059011b6752c28d7d6d7538897d6da369ae (diff) | |
parent | 11d0787961b33efdbfdad9bf0bbc48afecc3cc53 (diff) | |
download | gitlab-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.rb | 14 | ||||
-rw-r--r-- | config/routes.rb | 2 | ||||
-rw-r--r-- | config/routes/test.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/path_regex.rb | 1 | ||||
-rw-r--r-- | lib/tasks/brakeman.rake | 2 | ||||
-rw-r--r-- | spec/unicorn/unicorn_spec.rb | 21 |
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 |