diff options
author | Jean Boussier <jean.boussier@gmail.com> | 2012-05-05 12:05:32 -0400 |
---|---|---|
committer | James Tucker <jftucker@gmail.com> | 2012-05-12 18:48:27 -0700 |
commit | b4d7b95a057e6d9379848d7695d9ac93d4f48144 (patch) | |
tree | 60869910410d95315d0ad614fc1577abf202ca83 /test/spec_server.rb | |
parent | c582fb2c0db2c2ef9da1aab4b0a3a7a764faa819 (diff) | |
download | rack-b4d7b95a057e6d9379848d7695d9ac93d4f48144.tar.gz |
Check if the PID in pidfile is still running #371
Then abort or remove the pidfile
Diffstat (limited to 'test/spec_server.rb')
-rw-r--r-- | test/spec_server.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/spec_server.rb b/test/spec_server.rb index a1a51d9f..bd61d622 100644 --- a/test/spec_server.rb +++ b/test/spec_server.rb @@ -71,4 +71,30 @@ describe Rack::Server do open(pidfile) { |f| f.read.should.eql $$.to_s } end + should "check pid file presence and running process" do + pidfile = Tempfile.open('pidfile') { |f| f.write($$); break f }.path + server = Rack::Server.new(:pid => pidfile) + server.send(:pidfile_process_status).should.eql :running + end + + should "check pid file presence and dead process" do + dead_pid = `echo $$`.to_i + pidfile = Tempfile.open('pidfile') { |f| f.write(dead_pid); break f }.path + server = Rack::Server.new(:pid => pidfile) + server.send(:pidfile_process_status).should.eql :dead + end + + should "check pid file presence and exited process" do + pidfile = Tempfile.open('pidfile') { |f| break f }.path + ::File.delete(pidfile) + server = Rack::Server.new(:pid => pidfile) + server.send(:pidfile_process_status).should.eql :exited + end + + should "check pid file presence and not owned process" do + pidfile = Tempfile.open('pidfile') { |f| f.write(1); break f }.path + server = Rack::Server.new(:pid => pidfile) + server.send(:pidfile_process_status).should.eql :not_owned + end + end |