summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-14 13:48:09 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-04-14 13:48:09 +0000
commit3d41f4df438e8073e29cf85543917e401a83322b (patch)
tree76e4b7c7c8049b7ba6260d4376a6abbf09527aaf
parent146bedd6c487aa0fd93d8af41900887ff6d500eb (diff)
* lib/test/unit.rb (Test::Unit::Runner#jobs_status): io/console may
not be available. use 80 as the last resort if IO#winsize and COLUMNS are unavailable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--lib/test/unit.rb16
2 files changed, 15 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 0fc4c786d3..8ac5c8d0af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,8 @@
-Thu Apr 14 22:47:58 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Apr 14 22:48:03 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * lib/test/unit.rb (Test::Unit::Runner#jobs_status): io/console may
+ not be available. use 80 as the last resort if IO#winsize and
+ COLUMNS are unavailable.
* lib/test/unit.rb (Test::Unit::Runner::Worker#died): rename using a
verb.
diff --git a/lib/test/unit.rb b/lib/test/unit.rb
index 3ea9e7ba6a..d1f7383cb9 100644
--- a/lib/test/unit.rb
+++ b/lib/test/unit.rb
@@ -4,7 +4,6 @@ require 'minitest/unit'
require 'test/unit/assertions'
require 'test/unit/testcase'
require 'optparse'
-require 'io/console'
module Test
module Unit
@@ -351,22 +350,27 @@ module Test
return unless @opts[:job_status]
puts "" unless @opts[:verbose]
status_line = @workers.map(&:to_s).join(" ")
- if @opts[:job_status] == :replace
- @terminal_width ||= $stdout.winsize[1] || ENV["COLUMNS"].to_i || 80
+ if @opts[:job_status] == :replace and $stdout.tty?
+ @terminal_width ||=
+ begin
+ require 'io/console'
+ $stdout.winsize[1]
+ rescue LoadError, NoMethodError
+ ENV["COLUMNS"].to_i.nonzero? || 80
+ end
@jstr_size ||= 0
del_jobs_status
$stdout.flush
print status_line[0...@terminal_width]
$stdout.flush
- @jstr_size = status_line.size > @terminal_width ? \
- @terminal_width : status_line.size
+ @jstr_size = [status_line.size, @terminal_width].min
else
puts status_line
end
end
def del_jobs_status
- return unless @opts[:job_status] == :replace && @jstr_size
+ return unless @opts[:job_status] == :replace && @jstr_size.nonzero?
print "\r"+" "*@jstr_size+"\r"
end