From 528b30a9a3f2de1f0f44ef1a4ac65519a0770d58 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 26 Feb 2009 17:31:46 -0800 Subject: test for "unicorn --help" output Ensure the output fits in a standard ANSI terminal so it's easy to read for all users regardless of what interface they're working from. --- bin/unicorn | 20 ++++++++++---------- test/exec/test_exec.rb | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/bin/unicorn b/bin/unicorn index 0956d6f..c306c98 100755 --- a/bin/unicorn +++ b/bin/unicorn @@ -47,13 +47,13 @@ opts = OptionParser.new("", 24, ' ') do |opts| # some of these switches exist for rackup command-line compatibility, - opts.on("-o", "--host HOST", "listen on HOST (default: 0.0.0.0)") do |h| - warn "The --host/-o option is not recommended, see --listen/-l" + opts.on("-o", "--host HOST", + "listen on HOST (default: #{Unicorn::Const::DEFAULT_HOST})") do |h| host = h end - opts.on("-p", "--port PORT", "use PORT (default: 8080)") do |p| - warn "The --port/-p option is not recommended, see --listen/-l" + opts.on("-p", "--port PORT", + "use PORT (default: #{Unicorn::Const::DEFAULT_PORT})") do |p| port = p.to_i end @@ -71,10 +71,10 @@ opts = OptionParser.new("", 24, ' ') do |opts| end # Unicorn-specific stuff - opts.on("-l", "--listen ", - "listen on address:port or UNIX socket " \ - "(default: 0.0.0.0:8080)" \ - " this may be specified multiple times") do |address| + opts.on("-l", "--listen {HOST:PORT|PATH}", + "listen on HOST:PORT or PATH", + "this may be specified multiple times", + "(default: #{Unicorn::Const::DEFAULT_LISTEN})") do |address| listeners << address end @@ -87,7 +87,7 @@ opts = OptionParser.new("", 24, ' ') do |opts| end # I'm avoiding Unicorn-specific config options on the command-line. - # IMNSHO, config options on the command-line are redundant given a + # IMNSHO, config options on the command-line are redundant given # config files and make things unnecessarily complicated with multiple # places to look for a config option. @@ -99,7 +99,7 @@ opts = OptionParser.new("", 24, ' ') do |opts| exit end - opts.on_tail("--version", "Show version") do + opts.on_tail("-v", "--version", "Show version") do puts "unicorn v#{Unicorn::Const::UNICORN_VERSION}" exit end diff --git a/test/exec/test_exec.rb b/test/exec/test_exec.rb index 5ba5d9c..fb26195 100644 --- a/test/exec/test_exec.rb +++ b/test/exec/test_exec.rb @@ -102,6 +102,22 @@ end # after_fork assert_shutdown(pid) end + def test_help + redirect_test_io do + assert(system($unicorn_bin, "-h"), "help text returns true") + end + assert_equal 0, File.stat("test_stderr.#$$.log").size + assert_not_equal 0, File.stat("test_stdout.#$$.log").size + lines = File.readlines("test_stdout.#$$.log") + + # Be considerate of the on-call technician working from their + # mobile phone or netbook on a slow connection :) + assert lines.size < 24, "help height fits in an ANSI terminal window" + lines.each do |line| + assert line.size < 80, "help width fits in an ANSI terminal window" + end + end + def test_broken_reexec_config File.open("config.ru", "wb") { |fp| fp.syswrite(HI) } pid_file = "#{@tmpdir}/test.pid" -- cgit v1.2.3-24-ge0c7