ruby-changes:8322
From: akr <ko1@a...>
Date: Mon, 20 Oct 2008 00:59:55 +0900 (JST)
Subject: [ruby-changes:8322] Ruby:r19849 (trunk): * lib/test/unit.rb (Test::Unit.setup_argv): call given block for
akr 2008-10-20 00:59:35 +0900 (Mon, 20 Oct 2008) New Revision: 19849 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19849 Log: * lib/test/unit.rb (Test::Unit.setup_argv): call given block for filtering files. * test/runner.rb: search srcdir/test/arg, srcdir/arg. * bin/testrb: show usage if no files given. Modified files: trunk/ChangeLog trunk/bin/testrb trunk/lib/test/unit.rb trunk/test/runner.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 19848) +++ ChangeLog (revision 19849) @@ -1,3 +1,12 @@ +Mon Oct 20 00:57:04 2008 Tanaka Akira <akr@f...> + + * lib/test/unit.rb (Test::Unit.setup_argv): call given block for + filtering files. + + * test/runner.rb: search srcdir/test/arg, srcdir/arg. + + * bin/testrb: show usage if no files given. + Sun Oct 19 21:19:16 2008 Nobuyoshi Nakada <nobu@r...> * common.mk (srcs): removed ID_H_TARGET. Index: lib/test/unit.rb =================================================================== --- lib/test/unit.rb (revision 19848) +++ lib/test/unit.rb (revision 19849) @@ -8,35 +8,39 @@ TEST_UNIT_IMPLEMENTATION = 'test/unit compatibility layer using minitest' def self.setup_argv(original_argv=ARGV) - argv = [] - files = nil + minitest_argv = [] + files = [] reject = [] original_argv = original_argv.dup while arg = original_argv.shift case arg when '-v' - argv << '-v' + minitest_argv << '-v' when '-n', '--name' - argv << arg - argv << original_argv.shift + minitest_argv << arg + minitest_argv << original_argv.shift when '-x' reject << original_argv.shift else - files ||= [] - if File.directory? arg - files.concat Dir["#{arg}/**/test_*.rb"] - elsif File.file? arg - files << arg - else - raise ArgumentError, "file not found: #{arg}" - end + files << arg end end - if files == nil - files = Dir["test/**/test_*.rb"] + if block_given? + files = yield files end + files.map! {|f| + if File.directory? f + Dir["#{f}/**/test_*.rb"] + elsif File.file? f + f + else + raise ArgumentError, "file not found: #{f}" + end + } + files.flatten! + reject_pat = Regexp.union(reject.map {|r| /#{r}/ }) files.reject! {|f| reject_pat =~ f } @@ -52,9 +56,7 @@ end } - argv.concat files - - ARGV.replace argv + ARGV.replace minitest_argv end module Assertions Index: bin/testrb =================================================================== --- bin/testrb (revision 19848) +++ bin/testrb (revision 19849) @@ -1,3 +1,9 @@ #!/usr/bin/env ruby require 'test/unit' -Test::Unit.setup_argv +Test::Unit.setup_argv {|files| + if files.empty? + puts "Usage: testrb [options] tests..." + exit 1 + end + files +} Index: test/runner.rb =================================================================== --- test/runner.rb (revision 19848) +++ test/runner.rb (revision 19849) @@ -2,4 +2,24 @@ exit if CROSS_COMPILING require 'test/unit' -Test::Unit.setup_argv + +src_testdir = File.dirname(File.expand_path(__FILE__)) +srcdir = File.dirname(src_testdir) + +Test::Unit.setup_argv {|files| + if files.empty? + [src_testdir] + else + files.map {|f| + if File.exist? f + f + elsif File.exist? "#{src_testdir}/#{f}" + "#{src_testdir}/#{f}" + elsif File.exist? "#{srcdir}/#{f}" + "#{srcdir}/#{f}" + else + raise ArgumentError, "not found: #{f}" + end + } + end +} -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/