test-unit 2.4.7 → 2.4.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,7 +9,7 @@ test-unit - Improved version of Test::Unit bundled in Ruby
9
9
 
10
10
  Ruby 1.9.x bundles minitest not Test::Unit. Test::Unit
11
11
  bundled in Ruby 1.8.x had not been improved but unbundled
12
- Test::Unit (test-unit) will be improved actively.
12
+ Test::Unit (test-unit) is improved actively.
13
13
 
14
14
  h2. Features
15
15
 
@@ -1 +1,3 @@
1
- require "test/unit"
1
+ module Test
2
+ autoload :Unit, "test/unit"
3
+ end
@@ -189,18 +189,25 @@ module Test
189
189
  end
190
190
 
191
191
  def output_fault_backtrace(fault)
192
+ snippet_is_shown = false
192
193
  backtrace = fault.location
194
+ # workaround for test-spec. :<
195
+ # see also GitHub:#22
196
+ backtrace ||= []
193
197
  backtrace.each_with_index do |entry, i|
194
198
  output(entry)
195
- output_code_snippet(entry, fault_color(fault)) if i.zero?
199
+ next if snippet_is_shown
200
+ snippet_is_shown = output_code_snippet(entry, fault_color(fault))
196
201
  end
197
202
  end
198
203
 
199
204
  def output_code_snippet(entry, target_line_color=nil)
200
- return unless /\A(.*):(\d+)/ =~ entry
205
+ return false unless /\A(.*):(\d+)/ =~ entry
201
206
  file = $1
202
207
  line_number = $2.to_i
203
208
  lines = @code_snippet_fetcher.fetch(file, line_number)
209
+ return false if lines.empty?
210
+
204
211
  max_n = lines.collect {|n, line, attributes| n}.max
205
212
  digits = (Math.log10(max_n) + 1).truncate
206
213
  lines.each do |n, line, attributes|
@@ -214,7 +221,7 @@ module Test
214
221
  output(" %2s %*d: %s" % [current_line_mark, digits, n, line],
215
222
  line_color)
216
223
  end
217
- nl
224
+ true
218
225
  end
219
226
 
220
227
  def output_fault_message(fault)
@@ -1,5 +1,5 @@
1
1
  module Test
2
2
  module Unit
3
- VERSION = '2.4.7'
3
+ VERSION = '2.4.8'
4
4
  end
5
5
  end
@@ -0,0 +1,37 @@
1
+ require "test-unit"
2
+ require "testunit-test-util"
3
+
4
+ class TestCodeSnippet < Test::Unit::TestCase
5
+ include TestUnitTestUtil
6
+
7
+ class TestJRuby < self
8
+ def test_error_inside_jruby
9
+ jruby_only_test
10
+
11
+ backtrace = backtrace_from_jruby
12
+ no_rb_entries = backtrace.find_all do |(file, _, _)|
13
+ File.extname(file) != ".rb"
14
+ end
15
+
16
+ fetcher = Test::Unit::CodeSnippetFetcher.new
17
+ snippets = no_rb_entries.collect do |(file, line, _)|
18
+ fetcher.fetch(file, line)
19
+ end
20
+ assert_equal([[]] * no_rb_entries.size,
21
+ snippets)
22
+ end
23
+
24
+ private
25
+ def backtrace_from_jruby
26
+ begin
27
+ java.util.Vector.new(-1)
28
+ rescue Exception
29
+ $@.collect do |entry|
30
+ entry.split(/:/, 3)
31
+ end
32
+ else
33
+ flunk("failed to raise an exception from JRuby.")
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,13 @@
1
1
  module TestUnitTestUtil
2
2
  private
3
+ def jruby_only_test
4
+ begin
5
+ require "java"
6
+ rescue LoadError
7
+ omit("test for JRuby")
8
+ end
9
+ end
10
+
3
11
  def assert_fault_messages(expected, faults)
4
12
  assert_equal(expected, faults.collect {|fault| fault.message})
5
13
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-unit
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
8
  - 4
9
- - 7
10
- version: 2.4.7
9
+ - 8
10
+ version: 2.4.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kouhei Sutou
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-02-10 00:00:00 Z
19
+ date: 2012-03-06 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  version_requirements: &id001 !ruby/object:Gem::Requirement
@@ -63,7 +63,7 @@ dependencies:
63
63
  description: |
64
64
  Ruby 1.9.x bundles minitest not Test::Unit. Test::Unit
65
65
  bundled in Ruby 1.8.x had not been improved but unbundled
66
- Test::Unit (test-unit) will be improved actively.
66
+ Test::Unit (test-unit) is improved actively.
67
67
 
68
68
  email:
69
69
  - kou@cozmixng.org
@@ -140,6 +140,7 @@ files:
140
140
  - test/run-test.rb
141
141
  - test/test-assertions.rb
142
142
  - test/test-attribute.rb
143
+ - test/test-code-snippet.rb
143
144
  - test/test-color-scheme.rb
144
145
  - test/test-color.rb
145
146
  - test/test-data.rb