ruby-changes:6361
From: akr <ko1@a...>
Date: Fri, 4 Jul 2008 22:19:40 +0900 (JST)
Subject: [ruby-changes:6361] Ruby:r17877 (trunk): * lib/test/unit/testcase.rb: collect decendants of
akr 2008-07-04 22:19:24 +0900 (Fri, 04 Jul 2008)
New Revision: 17877
Modified files:
trunk/ChangeLog
trunk/lib/test/unit/autorunner.rb
trunk/lib/test/unit/collector/dir.rb
trunk/lib/test/unit/collector/objectspace.rb
trunk/lib/test/unit/testcase.rb
Log:
* lib/test/unit/testcase.rb: collect decendants of
Test::Unit::TestCase using inherited.
* lib/test/unit/autorunner.rb: don't use ObjectSpace.each_object.
* lib/test/unit/collector/dir.rb: ditto.
* lib/test/unit/collector/objectspace.rb: ditto.
[ruby-core:17126]
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=17877
Index: ChangeLog
===================================================================
--- ChangeLog (revision 17876)
+++ ChangeLog (revision 17877)
@@ -1,3 +1,16 @@
+Fri Jul 4 22:15:29 2008 Tanaka Akira <akr@f...>
+
+ * lib/test/unit/testcase.rb: collect decendants of
+ Test::Unit::TestCase using inherited.
+
+ * lib/test/unit/autorunner.rb: don't use ObjectSpace.each_object.
+
+ * lib/test/unit/collector/dir.rb: ditto.
+
+ * lib/test/unit/collector/objectspace.rb: ditto.
+
+ [ruby-core:17126]
+
Fri Jul 4 20:43:53 2008 Nobuyoshi Nakada <nobu@r...>
* include/ruby/oniguruma.h (OnigEncoding): removed auxiliary_data.
Index: lib/test/unit/autorunner.rb
===================================================================
--- lib/test/unit/autorunner.rb (revision 17876)
+++ lib/test/unit/autorunner.rb (revision 17877)
@@ -14,10 +14,7 @@
def self.standalone?
return false unless("-e" == $0)
- ObjectSpace.each_object(Class) do |klass|
- return false if(klass < TestCase)
- end
- true
+ TestCase::DECENDANT_CLASSES.empty?
end
RUNNERS = {
Index: lib/test/unit/collector/dir.rb
===================================================================
--- lib/test/unit/collector/dir.rb (revision 17876)
+++ lib/test/unit/collector/dir.rb (revision 17877)
@@ -10,7 +10,7 @@
attr_reader :pattern, :exclude
attr_accessor :base
- def initialize(dir=::Dir, file=::File, object_space=::ObjectSpace, req=nil)
+ def initialize(dir=::Dir, file=::File, object_space=nil, req=nil)
super()
@dir = dir
@file = file
@@ -43,8 +43,14 @@
def find_test_cases(ignore=[])
cases = []
- @object_space.each_object(Class) do |c|
- cases << c if(c < TestCase && !ignore.include?(c))
+ if @object_space
+ @object_space.each_object(Class) do |c|
+ cases << c if(c < TestCase && !ignore.include?(c))
+ end
+ else
+ TestCase::DECENDANT_CLASSES.each do |c|
+ cases << c if !ignore.include?(c)
+ end
end
ignore.concat(cases)
cases
Index: lib/test/unit/collector/objectspace.rb
===================================================================
--- lib/test/unit/collector/objectspace.rb (revision 17876)
+++ lib/test/unit/collector/objectspace.rb (revision 17877)
@@ -10,9 +10,9 @@
class ObjectSpace
include Test::Unit::Collector
- NAME = 'collected from the ObjectSpace'
+ NAME = 'collected from the subclasses of TestSuite'
- def initialize(source=::ObjectSpace)
+ def initialize(source=nil)
super()
@source = source
end
@@ -20,8 +20,14 @@
def collect(name=NAME)
suite = TestSuite.new(name)
sub_suites = []
- @source.each_object(Class) do |klass|
- if(Test::Unit::TestCase > klass)
+ if @source
+ @source.each_object(Class) do |klass|
+ if(Test::Unit::TestCase > klass)
+ add_suite(sub_suites, klass.suite)
+ end
+ end
+ else
+ TestCase::DECENDANT_CLASSES.each do |klass|
add_suite(sub_suites, klass.suite)
end
end
Index: lib/test/unit/testcase.rb
===================================================================
--- lib/test/unit/testcase.rb (revision 17876)
+++ lib/test/unit/testcase.rb (revision 17877)
@@ -34,6 +34,11 @@
PASSTHROUGH_EXCEPTIONS = [NoMemoryError, SignalException, Interrupt,
SystemExit]
+ DECENDANT_CLASSES = []
+ def self.inherited(decendant)
+ DECENDANT_CLASSES << decendant
+ end
+
# Creates a new instance of the fixture for running the
# test represented by test_method_name.
def initialize(test_method_name)
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/