Skip to content

Commit

Permalink
- Big cleanup of test filtering. Much prettier / more functional.
Browse files Browse the repository at this point in the history
[git-p4: depot-paths = "//src/minitest/dev/": change = 14037]
  • Loading branch information
zenspider committed Jan 24, 2024
1 parent 194a70a commit ef83965
Showing 1 changed file with 8 additions and 18 deletions.
26 changes: 8 additions & 18 deletions lib/minitest.rb
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def self.load_plugins # :nodoc:
# Minitest.run(args)
# Minitest.__run(reporter, options)
# Runnable.runnables.each
# runnable.run(reporter, options)
# runnable_klass.run(reporter, options)
# self.runnable_methods.each
# self.run_one_method(self, runnable_method, reporter)
# Minitest.run_one_method(klass, runnable_method)
Expand Down Expand Up @@ -338,25 +338,15 @@ def self.reset # :nodoc:
# reporter to record.

def self.run reporter, options = {}
filtered_methods = if options[:filter]
filter = options[:filter]
filter = Regexp.new $1 if filter.is_a?(String) && filter =~ %r%/(.*)/%

self.runnable_methods.find_all { |m|
filter === m || filter === "#{self}##{m}"
}
else
self.runnable_methods
end
pos = options[:filter]
neg = options[:exclude]

if options[:exclude]
exclude = options[:exclude]
exclude = Regexp.new $1 if exclude =~ %r%/(.*)/%
pos = Regexp.new $1 if pos.is_a?(String) && pos =~ %r%/(.*)/%
neg = Regexp.new $1 if neg.is_a?(String) && neg =~ %r%/(.*)/%

filtered_methods.delete_if { |m|
exclude === m || exclude === "#{self}##{m}"
}
end
filtered_methods = self.runnable_methods
.select { |m| !pos || pos === m || pos === "#{self}##{m}" }
.reject { |m| neg && (neg === m || neg === "#{self}##{m}") }

return if filtered_methods.empty?

Expand Down

0 comments on commit ef83965

Please sign in to comment.