mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
9d87ce34f8
- We need to pass the restart command to Puma so that it will use it while restarting the server. - Also made sure that all the options passed by user while starting the server are used in the generated restart command so that they will be used while restarting the server. - Besides that we need to remove the server.pid file for the previous running server because otherwise Rack complains about it's presence. - We don't care if the server.pid file does not exist. We only want to delete it if it exists. - This also requires some changes on Puma side which are being tracked here - https://github.com/puma/puma/pull/936. - Fixes #23910.
48 lines
1.2 KiB
Ruby
48 lines
1.2 KiB
Ruby
require "isolation/abstract_unit"
|
|
|
|
module ApplicationTests
|
|
module RakeTests
|
|
class RakeRestartTest < ActiveSupport::TestCase
|
|
include ActiveSupport::Testing::Isolation
|
|
|
|
def setup
|
|
build_app
|
|
boot_rails
|
|
end
|
|
|
|
def teardown
|
|
teardown_app
|
|
end
|
|
|
|
test 'rake restart touches tmp/restart.txt' do
|
|
Dir.chdir(app_path) do
|
|
`rake restart`
|
|
assert File.exist?("tmp/restart.txt")
|
|
|
|
prev_mtime = File.mtime("tmp/restart.txt")
|
|
sleep(1)
|
|
`rake restart`
|
|
curr_mtime = File.mtime("tmp/restart.txt")
|
|
assert_not_equal prev_mtime, curr_mtime
|
|
end
|
|
end
|
|
|
|
test 'rake restart should work even if tmp folder does not exist' do
|
|
Dir.chdir(app_path) do
|
|
FileUtils.remove_dir('tmp')
|
|
`rake restart`
|
|
assert File.exist?('tmp/restart.txt')
|
|
end
|
|
end
|
|
|
|
test 'rake restart removes server.pid also' do
|
|
Dir.chdir(app_path) do
|
|
FileUtils.mkdir_p("tmp/pids")
|
|
FileUtils.touch("tmp/pids/server.pid")
|
|
`rake restart`
|
|
assert_not File.exist?("tmp/pids/server.pid")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|