summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbootstraptest/runner.rb13
-rwxr-xr-xsample/test.rb16
2 files changed, 26 insertions, 3 deletions
diff --git a/bootstraptest/runner.rb b/bootstraptest/runner.rb
index 7455e83..62e63eb 100755
--- a/bootstraptest/runner.rb
+++ b/bootstraptest/runner.rb
@@ -61,6 +61,7 @@ def main
@ruby = File.expand_path('miniruby')
@verbose = false
$stress = false
+ @color = nil
dir = nil
quiet = false
tests = nil
@@ -81,6 +82,9 @@ def main
true
when /\A(--stress|-s)/
$stress = true
+ when /\A--color(?:=(?:always|(auto)|(never)))?\z/
+ @color = (!$2 unless $1)
+ true
when /\A(-q|--q(uiet))\z/
quiet = true
true
@@ -113,7 +117,14 @@ End
@progress = %w[- \\ | /]
@progress_bs = "\b" * @progress[0].size
@tty = !@verbose && $stderr.tty?
- if @tty and /mswin|mingw/ !~ RUBY_PLATFORM and /dumb/ !~ ENV["TERM"]
+ case @color
+ when nil
+ @color = @tty && /dumb/ !~ ENV["TERM"]
+ @color &= /mswin|mingw/ !~ RUBY_PLATFORM
+ when true
+ @tty = true
+ end
+ if @color
@passed = "\e[#{ENV['PASSED_COLOR']||'32'}m"
@failed = "\e[#{ENV['FAILED_COLOR']||'31'}m"
@reset = "\e[m"
diff --git a/sample/test.rb b/sample/test.rb
index cefdef4..3e73be9 100755
--- a/sample/test.rb
+++ b/sample/test.rb
@@ -6,11 +6,23 @@ $ntest=0
$failed = 0
PROGRESS = Object.new
PROGRESS.instance_eval do
+ @color = nil
+ case ARGV[0]
+ when /\A--color(?:=(?:always|(auto)|(never)))?\z/
+ @color = (!$2 unless $1)
+ end
@count = 0
@rotator = %w[- \\ | /]
@bs = "\b" * @rotator[0].size
- @tty = STDERR.tty?
- if @tty and /mswin|mingw/ !~ RUBY_PLATFORM and /dumb/ !~ ENV["TERM"]
+ @tty = STDERR.tty? && /dumb/ !~ ENV["TERM"]
+ @tty &&= /mswin|mingw/ !~ RUBY_PLATFORM
+ case @color
+ when nil
+ @color = @tty
+ when true
+ @tty = true
+ end
+ if @color
@passed = "\e[#{ENV['PASSED_COLOR']||'32'}m"
@failed = "\e[#{ENV['FAILED_COLOR']||'31'}m"
@reset = "\e[m"