Skip to content

Commit

Permalink
Another fix for mu_pp_for_diff on machines with really wide addresses.
Browse files Browse the repository at this point in the history
Fixed _run_suite's method filter to allow for method-only matches to work again.
Fixed filter to work with strings again.

[git-p4: depot-paths = "//src/minitest/dev/": change = 8163]
  • Loading branch information
zenspider committed Jan 31, 2013
1 parent b5a48b0 commit a6564d1
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 9 deletions.
5 changes: 3 additions & 2 deletions lib/minitest/unit.rb
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ def mu_pp obj
# uses mu_pp to do the first pass and then cleans it up.

def mu_pp_for_diff obj
mu_pp(obj).gsub(/\\n/, "\n").gsub(/:0x[a-f0-9]{4,12}/m, ':0xXXXXXX')
mu_pp(obj).gsub(/\\n/, "\n").gsub(/:0x[a-fA-F0-9]{4,}/m, ':0xXXXXXX')
end

def _assertions= n # :nodoc:
Expand Down Expand Up @@ -909,8 +909,9 @@ def _run_suite suite, type
filter = Regexp.new $1 if filter =~ /\/(.*)\//

all_test_methods = suite.send "#{type}_methods"

filtered_test_methods = all_test_methods.find_all { |m|
"#{suite}##{m}" =~ filter
filter === m || filter === "#{suite}##{m}"
}

assertions = filtered_test_methods.map { |method|
Expand Down
47 changes: 40 additions & 7 deletions test/minitest/test_minitest_unit.rb
Original file line number Diff line number Diff line change
Expand Up @@ -389,21 +389,30 @@ def test_failure
assert_report expected, %w[--name /some|thing/ --seed 42]
end

def test_run_filtered_including_suite_name
def assert_filtering name, expected, a = false
args = %W[--name #{name} --seed 42]

alpha = Class.new MiniTest::Unit::TestCase do
def test_something
assert false
define_method :test_something do
assert a
end
end
self.class.const_set(:Alpha, alpha)
Object.const_set(:Alpha, alpha)

beta = Class.new MiniTest::Unit::TestCase do
def test_something
define_method :test_something do
assert true
end
end
self.class.const_set(:Beta, beta)
Object.const_set(:Beta, beta)

assert_report expected, args
ensure
Object.send :remove_const, :Alpha
Object.send :remove_const, :Beta
end

def test_run_filtered_including_suite_name
expected = clean <<-EOM
.
Expand All @@ -412,7 +421,31 @@ def test_something
1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
EOM

assert_report expected, %w[--name /Beta#test_something/ --seed 42]
assert_filtering "/Beta#test_something/", expected
end

def test_run_filtered_including_suite_name_string
expected = clean <<-EOM
.
Finished tests in 0.00
1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
EOM

assert_filtering "Beta#test_something", expected
end

def test_run_filtered_string_method_only
expected = clean <<-EOM
..
Finished tests in 0.00
2 tests, 2 assertions, 0 failures, 0 errors, 0 skips
EOM

assert_filtering "test_something", expected, :pass
end

def test_run_passing
Expand Down

0 comments on commit a6564d1

Please sign in to comment.