rcov 0.5.0.1-mswin32 → 0.6.0.1-mswin32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/rcov/version.rb CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  module Rcov
6
6
 
7
- VERSION = "0.5.0"
8
- RELEASE_DATE = "2006-05-30"
9
- RCOVRT_ABI = [1,0,0]
7
+ VERSION = "0.6.0"
8
+ RELEASE_DATE = "2006-06-12"
9
+ RCOVRT_ABI = [2,0,0]
10
10
  UPSTREAM_URL = "http://eigenclass.org/hiki.rb?rcov"
11
11
 
12
12
  end
data/lib/rcovrt.so CHANGED
Binary file
@@ -14,8 +14,11 @@ class Test_CallSiteAnalyzer < Test::Unit::TestCase
14
14
  end
15
15
 
16
16
  def verify_callsites_equal(expected, actual)
17
- callsites = expected.inject({}) do |s,(desc, count)|
18
- s[Rcov::CallSiteAnalyzer::CallSite.new(desc)] = count
17
+ callsites = expected.inject({}) do |s,(backtrace, count)|
18
+ unless $".any?{|x| %r{\brcovrt\b} =~ x}
19
+ backtrace = backtrace.map{|_, mid, file, line| [nil, mid, file, line] }
20
+ end
21
+ s[Rcov::CallSiteAnalyzer::CallSite.new(backtrace)] = count
19
22
  s
20
23
  end
21
24
  assert_equal(callsites, actual)
@@ -71,32 +74,42 @@ class Test_CallSiteAnalyzer < Test::Unit::TestCase
71
74
  @a.run_hooked{ @o.f1 }
72
75
  assert(@a.analyzed_classes.include?("Rcov::Test::Temporary::Sample03"))
73
76
  assert_equal(%w[f1 f2], @a.analyzed_methods("Rcov::Test::Temporary::Sample03"))
74
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
77
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1, "./test/sample_03.rb", 4]] => 10},
75
78
  @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
76
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
79
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1, "./test/sample_03.rb", 4]] => 10},
77
80
  @a.callsites("Rcov::Test::Temporary::Sample03#f2"))
81
+ #verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
82
+ # @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
83
+ #verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
84
+ # @a.callsites("Rcov::Test::Temporary::Sample03#f2"))
78
85
  end
79
86
 
80
87
  def test_basic_callsite_recording_API
81
88
  @a.run_hooked{ @o.f1 }
82
89
  assert(@a.analyzed_classes.include?("Rcov::Test::Temporary::Sample03"))
83
90
  assert_equal(%w[f1 f2], @a.analyzed_methods("Rcov::Test::Temporary::Sample03"))
84
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
91
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
92
+ "./test/sample_03.rb", 4]] => 10},
93
+ @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
94
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1, "./test/sample_03.rb", 4]] => 10},
85
95
  @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
86
96
  callsites = @a.callsites("Rcov::Test::Temporary::Sample03", "f2")
87
97
  callsite = callsites.keys[0]
88
98
  assert_equal("./test/sample_03.rb", callsite.file)
89
99
  assert_equal(4, callsite.line)
90
- assert_equal("f1", callsite.calling_method)
100
+ assert_equal(:f1, callsite.calling_method)
91
101
  end
92
102
 
103
+
93
104
  def test_basic_callsite_recording_with_singleton_classes
94
105
  @a.run_hooked{ @o.class.g1 }
95
106
  assert(@a.analyzed_classes.include?("#<Class:Rcov::Test::Temporary::Sample03>"))
96
107
  assert_equal(%w[g1 g2], @a.analyzed_methods("#<Class:Rcov::Test::Temporary::Sample03>"))
97
- verify_callsites_equal({["./test/sample_03.rb:15:in `g1'"] => 10},
108
+ verify_callsites_equal({[[class << Rcov::Test::Temporary::Sample03; self end,
109
+ :g1, "./test/sample_03.rb", 15]] => 10},
98
110
  @a.callsites("Rcov::Test::Temporary::Sample03.g2"))
99
- verify_callsites_equal({["./test/sample_03.rb:15:in `g1'"] => 10},
111
+ verify_callsites_equal({[[class << Rcov::Test::Temporary::Sample03; self end,
112
+ :g1, "./test/sample_03.rb", 15]] => 10},
100
113
  @a.callsites("#<Class:Rcov::Test::Temporary::Sample03>","g2"))
101
114
  end
102
115
 
@@ -105,19 +118,23 @@ class Test_CallSiteAnalyzer < Test::Unit::TestCase
105
118
  @a.run_hooked{ @o.f1 }
106
119
  assert(@a.analyzed_classes.include?("Rcov::Test::Temporary::Sample03"))
107
120
  assert_equal(%w[f1 f2], @a.analyzed_methods("Rcov::Test::Temporary::Sample03"))
108
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
121
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
122
+ "./test/sample_03.rb", 4]] => 10},
109
123
  @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
110
124
 
111
125
  @a.run_hooked{ @o.f1 }
112
126
  assert(@a.analyzed_classes.include?("Rcov::Test::Temporary::Sample03"))
113
127
  assert_equal(%w[f1 f2], @a.analyzed_methods("Rcov::Test::Temporary::Sample03"))
114
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 20},
128
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
129
+ "./test/sample_03.rb", 4]] => 20},
115
130
  @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
116
131
 
117
132
  @a.run_hooked{ @o.f3 }
118
133
  assert_equal(%w[f1 f2 f3], @a.analyzed_methods("Rcov::Test::Temporary::Sample03"))
119
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 120,
120
- ["./test/sample_03.rb:11:in `f3'"]=>100 },
134
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
135
+ "./test/sample_03.rb", 4]] => 120,
136
+ [[Rcov::Test::Temporary::Sample03, :f3,
137
+ "./test/sample_03.rb", 11]]=>100 },
121
138
  @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
122
139
  end
123
140
 
@@ -129,7 +146,8 @@ class Test_CallSiteAnalyzer < Test::Unit::TestCase
129
146
  end
130
147
  assert(@a.analyzed_classes.include?("Rcov::Test::Temporary::Sample03"))
131
148
  assert_equal(%w[f1 f2], @a.analyzed_methods("Rcov::Test::Temporary::Sample03"))
132
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
149
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
150
+ "./test/sample_03.rb", 4]] => 10},
133
151
  @a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
134
152
 
135
153
  end
@@ -141,23 +159,28 @@ class Test_CallSiteAnalyzer < Test::Unit::TestCase
141
159
  b.run_hooked { @o.f1 }
142
160
  assert(b.analyzed_classes.include?("Rcov::Test::Temporary::Sample03"))
143
161
  assert_equal(%w[f1 f2], b.analyzed_methods("Rcov::Test::Temporary::Sample03"))
144
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
162
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
163
+ "./test/sample_03.rb", 4]] => 10},
145
164
  b.callsites("Rcov::Test::Temporary::Sample03", "f2"))
146
165
 
147
166
  @o.f1
148
167
  assert_equal(%w[f1 f2], b.analyzed_methods("Rcov::Test::Temporary::Sample03"))
149
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 10},
168
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
169
+ "./test/sample_03.rb", 4]] => 10},
150
170
  b.callsites("Rcov::Test::Temporary::Sample03", "f2"))
151
171
 
152
172
  assert(a.analyzed_classes.include?("Rcov::Test::Temporary::Sample03"))
153
173
  assert_equal(%w[f1 f2], a.analyzed_methods("Rcov::Test::Temporary::Sample03"))
154
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 20},
174
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
175
+ "./test/sample_03.rb", 4]] => 20},
155
176
  a.callsites("Rcov::Test::Temporary::Sample03", "f2"))
156
177
  end
157
178
  b.run_hooked{ @o.f3 }
158
179
  assert_equal(%w[f1 f2 f3], b.analyzed_methods("Rcov::Test::Temporary::Sample03"))
159
- verify_callsites_equal({["./test/sample_03.rb:4:in `f1'"] => 110,
160
- ["./test/sample_03.rb:11:in `f3'"]=>100 },
180
+ verify_callsites_equal({[[Rcov::Test::Temporary::Sample03, :f1,
181
+ "./test/sample_03.rb", 4]] => 110,
182
+ [[Rcov::Test::Temporary::Sample03, :f3,
183
+ "./test/sample_03.rb", 11]]=>100 },
161
184
  b.callsites("Rcov::Test::Temporary::Sample03", "f2"))
162
185
  end
163
186
 
@@ -28,7 +28,7 @@ EOF
28
28
  cover = [1, 1, nil, nil, 0, 5, 5, 5, 0]
29
29
  line_info, marked_info,
30
30
  count_info = analyzer.instance_eval{ refine_coverage_info(LINES, cover) }
31
- assert_equal(LINES.map{|l| l.chomp}, line_info)
31
+ assert_equal(LINES, line_info)
32
32
  assert_equal([true] * 2 + [false] * 3 + [true] * 3 + [false], marked_info)
33
33
  assert_equal([1, 1, 0, 0, 0, 5, 5, 5, 0], count_info)
34
34
  end
@@ -47,7 +47,7 @@ EOF
47
47
  assert_equal(lines, SCRIPT_LINES__[sample_file][0, lines.size])
48
48
  assert(analyzer.analyzed_files.include?(sample_file))
49
49
  line_info, cov_info, count_info = analyzer.data(sample_file)
50
- assert_equal(lines.map{|l| l.chomp}, line_info)
50
+ assert_equal(lines, line_info)
51
51
  assert_equal([true, true, false, false, true, false, true], cov_info)
52
52
  assert_equal([1, 2, 0, 0, 1, 0, 11], count_info)
53
53
  analyzer.reset
@@ -92,7 +92,7 @@ class Test_FileStatistics < Test::Unit::TestCase
92
92
  1 if bar
93
93
  0 b = 2
94
94
  0 end
95
- 0 puts <<EOF
95
+ 1 puts <<EOF
96
96
  0 bleh
97
97
  0 EOF
98
98
  3 c.times{ i += 1}
@@ -113,7 +113,33 @@ class Test_FileStatistics < Test::Unit::TestCase
113
113
  assert_equal(expected, sf2.coverage.to_a)
114
114
  sf.merge(sf2.lines, sf2.coverage, sf2.counts)
115
115
  assert_equal(expected, sf.coverage.to_a)
116
- assert_equal([2, 2, 1, 0, 1, 0, 0, 13], sf.counts)
116
+ assert_equal([2, 2, 1, 0, 2, 0, 0, 13], sf.counts)
117
+ end
118
+
119
+ def test_last_comment_block_is_marked
120
+ verify_everything_marked "last comment block", <<-EOF
121
+ 1 a = 1
122
+ 1 b = 1
123
+ 0 # foo
124
+ 0 # bar baz
125
+ EOF
126
+ verify_everything_marked "last comment block, =begin/=end", <<-EOF
127
+ 1 a = 1
128
+ 2 b = 1
129
+ 0 # fooo
130
+ 0 =begin
131
+ 0 bar baz
132
+ 0 =end
133
+ EOF
134
+ verify_everything_marked "last comment block, __END__", <<-EOF
135
+ 1 a = 1
136
+ 2 b = 1
137
+ 0 # fooo
138
+ 0 =begin
139
+ 0 bar baz
140
+ 0 =end
141
+ __END__
142
+ EOF
117
143
  end
118
144
 
119
145
  def test_heredocs_basic
@@ -209,6 +235,19 @@ class Test_FileStatistics < Test::Unit::TestCase
209
235
  EOF
210
236
  end
211
237
 
238
+ def test_heredocs_with_interpolation_alone_in_method
239
+ verify_everything_marked "lonely heredocs with interpolation", <<-'EOS'
240
+ 1 def to_s
241
+ 0 <<-EOF
242
+ 1 #{name}
243
+ 0 #{street}
244
+ 0 #{city}, #{state}
245
+ 0 #{zip}
246
+ 0 EOF
247
+ 0 end
248
+ EOS
249
+ end
250
+
212
251
  def test_handle_multiline_expressions
213
252
  verify_everything_marked "expression", <<-EOF
214
253
  1 puts 1, 2.
@@ -253,6 +292,37 @@ class Test_FileStatistics < Test::Unit::TestCase
253
292
  EOF
254
293
  end
255
294
 
295
+ def test_handle_multiline_blocks_first_not_marked
296
+ verify_everything_marked "multiline block first not marked", <<-'EOF'
297
+ 1 blah = Array.new
298
+ 1 10.times do
299
+ 0 blah << lambda do |f|
300
+ 1 puts "I should say #{f}!"
301
+ 0 end
302
+ 0 end
303
+ EOF
304
+ end
305
+
306
+ def test_handle_multiline_blocks_last_line_not_marked
307
+ verify_everything_marked "multiline block last not marked", <<-'EOF'
308
+ 1 blee = [1, 2, 3]
309
+ 0 blee.map! do |e|
310
+ 1 [e, e]
311
+ 0 end.flatten!
312
+ 1 p blee
313
+ EOF
314
+ end
315
+
316
+ def test_handle_multiline_data_with_trailing_stuff_on_last_line
317
+ verify_everything_marked "multiline data hash", <<-'EOF'
318
+ 1 @review = Review.new({
319
+ 0 :product_id => params[:id],
320
+ 0 :user => current_user
321
+ 0 }.merge(params[:review])) #red
322
+ 1 @review.save
323
+ EOF
324
+ end
325
+
256
326
  def test_handle_multiline_expression_1st_line_ends_in_block_header
257
327
  # excerpt taken from mongrel/handlers.rb
258
328
  verify_everything_marked "multiline with block starting on 1st", <<-EOF
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: rcov
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.5.0.1
7
- date: 2006-05-30 00:00:00 +02:00
6
+ version: 0.6.0.1
7
+ date: 2006-06-12 00:00:00 +02:00
8
8
  summary: Code coverage analysis tool for Ruby
9
9
  require_paths:
10
10
  - lib
@@ -34,6 +34,7 @@ files:
34
34
  - lib/rcov/version.rb
35
35
  - lib/rcov/lowlevel.rb
36
36
  - lib/rcov/rant.rb
37
+ - lib/rcov/report.rb
37
38
  - ext/rcovrt/extconf.rb
38
39
  - ext/rcovrt/rcov.c
39
40
  - LEGAL
@@ -43,6 +44,7 @@ files:
43
44
  - README.en
44
45
  - README.rake
45
46
  - README.API
47
+ - README.vim
46
48
  - README.rant
47
49
  - THANKS
48
50
  - test/sample_02.rb
@@ -69,6 +71,8 @@ rdoc_options:
69
71
  extra_rdoc_files:
70
72
  - README.API
71
73
  - README.rake
74
+ - README.rant
75
+ - README.vim
72
76
  executables:
73
77
  - rcov
74
78
  extensions: []