summaryrefslogtreecommitdiff
path: root/lib/test/unit/collector/objectspace.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/test/unit/collector/objectspace.rb')
-rw-r--r--lib/test/unit/collector/objectspace.rb30
1 files changed, 7 insertions, 23 deletions
diff --git a/lib/test/unit/collector/objectspace.rb b/lib/test/unit/collector/objectspace.rb
index 5a1d29cc1a..d1127a981f 100644
--- a/lib/test/unit/collector/objectspace.rb
+++ b/lib/test/unit/collector/objectspace.rb
@@ -2,15 +2,19 @@
# Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
# License:: Ruby license.
+require 'test/unit/collector'
+
module Test
module Unit
module Collector
class ObjectSpace
+ include Collector
+
NAME = 'collected from the ObjectSpace'
def initialize(source=::ObjectSpace)
+ super()
@source = source
- @filters = []
end
def collect(name=NAME)
@@ -18,32 +22,12 @@ module Test
sub_suites = []
@source.each_object(Class) do |klass|
if(Test::Unit::TestCase > klass)
- sub_suite = klass.suite
- to_delete = sub_suite.tests.find_all{|t| !include(t)}
- to_delete.each{|t| sub_suite.delete(t)}
- sub_suites << sub_suite unless(sub_suite.size == 0)
+ add_suite(sub_suites, klass.suite)
end
end
- sub_suites.sort_by{|s| s.name}.each{|s| suite << s}
+ sort(sub_suites).each{|s| suite << s}
suite
end
-
- def include(test)
- return true if(@filters.empty?)
- @filters.each do |filter|
- return true if(filter.call(test))
- end
- false
- end
-
- def filter=(filters)
- @filters = case(filters)
- when Proc
- [filters]
- when Array
- filters
- end
- end
end
end
end