slather 1.8.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.travis.yml +1 -0
  4. data/CHANGELOG.md +21 -1
  5. data/README.md +15 -10
  6. data/README_Images/test_scheme.png +0 -0
  7. data/Rakefile +6 -0
  8. data/bin/slather +45 -6
  9. data/lib/slather/coverage_file.rb +37 -90
  10. data/lib/slather/coverage_info.rb +84 -0
  11. data/lib/slather/coverage_service/cobertura_xml_output.rb +10 -6
  12. data/lib/slather/coverage_service/coveralls.rb +5 -1
  13. data/lib/slather/coverage_service/gutter_json_output.rb +12 -8
  14. data/lib/slather/coverage_service/hardcover.rb +5 -1
  15. data/lib/slather/coverage_service/html_output.rb +32 -19
  16. data/lib/slather/coverage_service/simple_output.rb +5 -1
  17. data/lib/slather/{coveralls_coverage_file.rb → coveralls_coverage.rb} +1 -1
  18. data/lib/slather/profdata_coverage_file.rb +130 -0
  19. data/lib/slather/project.rb +191 -27
  20. data/lib/slather/version.rb +1 -1
  21. data/lib/slather.rb +9 -1
  22. data/slather.gemspec +4 -4
  23. data/spec/fixtures/cobertura.xml +56 -79
  24. data/spec/fixtures/fixtures/Fixtures.swift +15 -0
  25. data/spec/fixtures/fixtures/other_fixtures.m +23 -0
  26. data/spec/fixtures/fixtures_html/Branches.m.html +244 -258
  27. data/spec/fixtures/fixtures_html/BranchesTests.m.html +209 -225
  28. data/spec/fixtures/fixtures_html/fixtures.m.html +134 -148
  29. data/spec/fixtures/fixtures_html/fixturesTests.m.html +199 -213
  30. data/spec/fixtures/fixtures_html/index.html +68 -131
  31. data/spec/fixtures/fixtures_html/peekaviewTests.m.html +189 -203
  32. data/spec/fixtures/gutter.json +1 -1
  33. data/spec/slather/coverage_file_spec.rb +20 -12
  34. data/spec/slather/coverage_service/cobertura_xml_spec.rb +7 -3
  35. data/spec/slather/coverage_service/coveralls_spec.rb +61 -20
  36. data/spec/slather/coverage_service/gutter_json_spec.rb +6 -2
  37. data/spec/slather/coverage_service/hardcover_spec.rb +33 -3
  38. data/spec/slather/coverage_service/html_output_spec.rb +48 -7
  39. data/spec/slather/coverage_service/simple_output_spec.rb +12 -13
  40. data/spec/slather/profdata_coverage_spec.rb +128 -0
  41. data/spec/slather/project_spec.rb +222 -49
  42. data/spec/spec_helper.rb +28 -2
  43. metadata +58 -46
  44. data/spec/fixtures/fixtures_html/Empty.m.html +0 -30
  45. data/spec/fixtures/fixtures_html/fixtures_cpp.cpp.html +0 -30
  46. data/spec/fixtures/fixtures_html/fixtures_m.m.html +0 -30
  47. data/spec/fixtures/fixtures_html/fixtures_mm.mm.html +0 -30
  48. data/spec/fixtures/fixtures_html/peekaview.m.html +0 -190
@@ -1,206 +1,192 @@
1
1
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
2
2
  <html>
3
- <head>
4
- <title>peekaviewTests.m - Slather</title>
5
- <link href="../../../assets/slather.css" media="all" rel="stylesheet">
6
- </head>
7
- <body>
8
- <header>
9
- <div class="row">
10
- <a href="index.html"><img src="../../../docs/logo.jpg" alt="Slather logo"></a>
11
- </div>
12
- </header>
13
- <div class="row">
14
- <div id="reports">
15
- <h2 class="cov_title">
16
- <span>Coverage for "peekaviewTests.m" : </span>
17
- <span class="cov_high">100.00%</span>
18
- </h2>
19
- <h4 class="cov_subtitle">(6 of 6 relevant lines covered)</h4>
20
- <h4 class="cov_filepath">spec/fixtures/fixturesTests/peekaviewTests.m</h4>
21
- <table class="source_code">
22
- <tr class="never">
23
- <td class="num">1</td>
24
- <td class="src"><pre><code>//</code></pre></td>
25
- <td class="coverage"></td>
26
- </tr>
27
- <tr class="never">
28
- <td class="num">2</td>
29
- <td class="src"><pre><code>// peekaviewTests.m</code></pre></td>
30
- <td class="coverage"></td>
31
- </tr>
32
- <tr class="never">
33
- <td class="num">3</td>
34
- <td class="src"><pre><code>// fixtures</code></pre></td>
35
- <td class="coverage"></td>
36
- </tr>
37
- <tr class="never">
38
- <td class="num">4</td>
39
- <td class="src"><pre><code>//</code></pre></td>
40
- <td class="coverage"></td>
41
- </tr>
42
- <tr class="never">
43
- <td class="num">5</td>
44
- <td class="src"><pre><code>// Created by Mark Larsen on 6/25/14.</code></pre></td>
45
- <td class="coverage"></td>
46
- </tr>
47
- <tr class="never">
48
- <td class="num">6</td>
49
- <td class="src"><pre><code>// Copyright (c) 2014 marklarr. All rights reserved.</code></pre></td>
50
- <td class="coverage"></td>
51
- </tr>
52
- <tr class="never">
53
- <td class="num">7</td>
54
- <td class="src"><pre><code>//</code></pre></td>
55
- <td class="coverage"></td>
56
- </tr>
57
- <tr class="never">
58
- <td class="num">8</td>
59
- <td class="src"><pre><code></code></pre></td>
60
- <td class="coverage"></td>
61
- </tr>
62
- <tr class="never">
63
- <td class="num">9</td>
64
- <td class="src"><pre><code>#import &lt;XCTest/XCTest.h&gt;</code></pre></td>
65
- <td class="coverage"></td>
66
- </tr>
67
- <tr class="never">
68
- <td class="num">10</td>
69
- <td class="src"><pre><code></code></pre></td>
70
- <td class="coverage"></td>
71
- </tr>
72
- <tr class="never">
73
- <td class="num">11</td>
74
- <td class="src"><pre><code>@interface peekaviewTests : XCTestCase</code></pre></td>
75
- <td class="coverage"></td>
76
- </tr>
77
- <tr class="never">
78
- <td class="num">12</td>
79
- <td class="src"><pre><code></code></pre></td>
80
- <td class="coverage"></td>
81
- </tr>
82
- <tr class="never">
83
- <td class="num">13</td>
84
- <td class="src"><pre><code>@end</code></pre></td>
85
- <td class="coverage"></td>
86
- </tr>
87
- <tr class="never">
88
- <td class="num">14</td>
89
- <td class="src"><pre><code></code></pre></td>
90
- <td class="coverage"></td>
91
- </tr>
92
- <tr class="never">
93
- <td class="num">15</td>
94
- <td class="src"><pre><code>@implementation peekaviewTests</code></pre></td>
95
- <td class="coverage"></td>
96
- </tr>
97
- <tr class="never">
98
- <td class="num">16</td>
99
- <td class="src"><pre><code></code></pre></td>
100
- <td class="coverage"></td>
101
- </tr>
102
- <tr class="never">
103
- <td class="num">17</td>
104
- <td class="src"><pre><code>- (void)setUp</code></pre></td>
105
- <td class="coverage"></td>
106
- </tr>
107
- <tr class="never">
108
- <td class="num">18</td>
109
- <td class="src"><pre><code>{</code></pre></td>
110
- <td class="coverage"></td>
111
- </tr>
112
- <tr class="covered">
113
- <td class="num">19</td>
114
- <td class="src"><pre><code> [super setUp];</code></pre></td>
115
- <td class="coverage">1x</td>
116
- </tr>
117
- <tr class="never">
118
- <td class="num">20</td>
119
- <td class="src"><pre><code> // Put setup code here. This method is called before the invocation of each test method in the class.</code></pre></td>
120
- <td class="coverage"></td>
121
- </tr>
122
- <tr class="covered">
123
- <td class="num">21</td>
124
- <td class="src"><pre><code>}</code></pre></td>
125
- <td class="coverage">1x</td>
126
- </tr>
127
- <tr class="never">
128
- <td class="num">22</td>
129
- <td class="src"><pre><code></code></pre></td>
130
- <td class="coverage"></td>
131
- </tr>
132
- <tr class="never">
133
- <td class="num">23</td>
134
- <td class="src"><pre><code>- (void)tearDown</code></pre></td>
135
- <td class="coverage"></td>
136
- </tr>
137
- <tr class="never">
138
- <td class="num">24</td>
139
- <td class="src"><pre><code>{</code></pre></td>
140
- <td class="coverage"></td>
141
- </tr>
142
- <tr class="never">
143
- <td class="num">25</td>
144
- <td class="src"><pre><code> // Put teardown code here. This method is called after the invocation of each test method in the class.</code></pre></td>
145
- <td class="coverage"></td>
146
- </tr>
147
- <tr class="covered">
148
- <td class="num">26</td>
149
- <td class="src"><pre><code> [super tearDown];</code></pre></td>
150
- <td class="coverage">1x</td>
151
- </tr>
152
- <tr class="covered">
153
- <td class="num">27</td>
154
- <td class="src"><pre><code>}</code></pre></td>
155
- <td class="coverage">1x</td>
156
- </tr>
157
- <tr class="never">
158
- <td class="num">28</td>
159
- <td class="src"><pre><code></code></pre></td>
160
- <td class="coverage"></td>
161
- </tr>
162
- <tr class="never">
163
- <td class="num">29</td>
164
- <td class="src"><pre><code>- (void)testExample</code></pre></td>
165
- <td class="coverage"></td>
166
- </tr>
167
- <tr class="never">
168
- <td class="num">30</td>
169
- <td class="src"><pre><code>{</code></pre></td>
170
- <td class="coverage"></td>
171
- </tr>
172
- <tr class="covered">
173
- <td class="num">31</td>
174
- <td class="src"><pre><code> XCTAssert(YES, @"woot");</code></pre></td>
175
- <td class="coverage">2x</td>
176
- </tr>
177
- <tr class="covered">
178
- <td class="num">32</td>
179
- <td class="src"><pre><code>}</code></pre></td>
180
- <td class="coverage">1x</td>
181
- </tr>
182
- <tr class="never">
183
- <td class="num">33</td>
184
- <td class="src"><pre><code></code></pre></td>
185
- <td class="coverage"></td>
186
- </tr>
187
- <tr class="never">
188
- <td class="num">34</td>
189
- <td class="src"><pre><code>@end</code></pre></td>
190
- <td class="coverage"></td>
191
- </tr>
192
- </table>
193
- </div>
194
- </div>
195
- <footer>
196
- <div class="row">
197
- <p><a href="https://github.com/venmo/slather">Fork me on Github</a></p>
198
- <p>&copy; 2015 Slather</p>
199
- </div>
200
- </footer>
201
-
202
- <script src="../../../assets/highlight.pack.js"></script>
203
- <script>hljs.initHighlightingOnLoad();</script>
204
-
205
- </body>
3
+ <head>
4
+ <title>peekaviewTests.m - Slather</title>
5
+ <link href="/Users/civetta/Works/Personal/slather/viteinfinite-slather/assets/slather.css" media="all" rel="stylesheet">
6
+ </head>
7
+ <body>
8
+ <header><div class="row"><a href="index.html"><img src="/Users/civetta/Works/Personal/slather/viteinfinite-slather/docs/logo.jpg" alt="Slather logo"></a></div></header><div class="row"><div id="reports">
9
+ <h2 class="cov_title">
10
+ <span>Coverage for "peekaviewTests.m" : </span><span class="cov_high">100.00%</span>
11
+ </h2>
12
+ <h4 class="cov_subtitle">(11 of 11 relevant lines covered)</h4>
13
+ <h4 class="cov_filepath">spec/fixtures/fixturesTests/peekaviewTests.m</h4>
14
+ <table class="source_code">
15
+ <tr class="never">
16
+ <td class="num">1</td>
17
+ <td class="src"><pre><code class="objc">//</code></pre></td>
18
+ <td class="coverage"></td>
19
+ </tr>
20
+ <tr class="never">
21
+ <td class="num">2</td>
22
+ <td class="src"><pre><code class="objc">// peekaviewTests.m</code></pre></td>
23
+ <td class="coverage"></td>
24
+ </tr>
25
+ <tr class="never">
26
+ <td class="num">3</td>
27
+ <td class="src"><pre><code class="objc">// fixtures</code></pre></td>
28
+ <td class="coverage"></td>
29
+ </tr>
30
+ <tr class="never">
31
+ <td class="num">4</td>
32
+ <td class="src"><pre><code class="objc">//</code></pre></td>
33
+ <td class="coverage"></td>
34
+ </tr>
35
+ <tr class="never">
36
+ <td class="num">5</td>
37
+ <td class="src"><pre><code class="objc">// Created by Mark Larsen on 6/25/14.</code></pre></td>
38
+ <td class="coverage"></td>
39
+ </tr>
40
+ <tr class="never">
41
+ <td class="num">6</td>
42
+ <td class="src"><pre><code class="objc">// Copyright (c) 2014 marklarr. All rights reserved.</code></pre></td>
43
+ <td class="coverage"></td>
44
+ </tr>
45
+ <tr class="never">
46
+ <td class="num">7</td>
47
+ <td class="src"><pre><code class="objc">//</code></pre></td>
48
+ <td class="coverage"></td>
49
+ </tr>
50
+ <tr class="never">
51
+ <td class="num">8</td>
52
+ <td class="src"><pre><code class="objc"></code></pre></td>
53
+ <td class="coverage"></td>
54
+ </tr>
55
+ <tr class="never">
56
+ <td class="num">9</td>
57
+ <td class="src"><pre><code class="objc">#import &lt;XCTest/XCTest.h&gt;</code></pre></td>
58
+ <td class="coverage"></td>
59
+ </tr>
60
+ <tr class="never">
61
+ <td class="num">10</td>
62
+ <td class="src"><pre><code class="objc"></code></pre></td>
63
+ <td class="coverage"></td>
64
+ </tr>
65
+ <tr class="never">
66
+ <td class="num">11</td>
67
+ <td class="src"><pre><code class="objc">@interface peekaviewTests : XCTestCase</code></pre></td>
68
+ <td class="coverage"></td>
69
+ </tr>
70
+ <tr class="never">
71
+ <td class="num">12</td>
72
+ <td class="src"><pre><code class="objc"></code></pre></td>
73
+ <td class="coverage"></td>
74
+ </tr>
75
+ <tr class="never">
76
+ <td class="num">13</td>
77
+ <td class="src"><pre><code class="objc">@end</code></pre></td>
78
+ <td class="coverage"></td>
79
+ </tr>
80
+ <tr class="never">
81
+ <td class="num">14</td>
82
+ <td class="src"><pre><code class="objc"></code></pre></td>
83
+ <td class="coverage"></td>
84
+ </tr>
85
+ <tr class="never">
86
+ <td class="num">15</td>
87
+ <td class="src"><pre><code class="objc">@implementation peekaviewTests</code></pre></td>
88
+ <td class="coverage"></td>
89
+ </tr>
90
+ <tr class="never">
91
+ <td class="num">16</td>
92
+ <td class="src"><pre><code class="objc"></code></pre></td>
93
+ <td class="coverage"></td>
94
+ </tr>
95
+ <tr class="never">
96
+ <td class="num">17</td>
97
+ <td class="src"><pre><code class="objc">- (void)setUp</code></pre></td>
98
+ <td class="coverage"></td>
99
+ </tr>
100
+ <tr class="covered">
101
+ <td class="num">18</td>
102
+ <td class="src"><pre><code class="objc">{</code></pre></td>
103
+ <td class="coverage">1x</td>
104
+ </tr>
105
+ <tr class="covered">
106
+ <td class="num">19</td>
107
+ <td class="src"><pre><code class="objc"> [super setUp];</code></pre></td>
108
+ <td class="coverage">1x</td>
109
+ </tr>
110
+ <tr class="covered">
111
+ <td class="num">20</td>
112
+ <td class="src"><pre><code class="objc"> // Put setup code here. This method is called before the invocation of each test method in the class.</code></pre></td>
113
+ <td class="coverage">1x</td>
114
+ </tr>
115
+ <tr class="covered">
116
+ <td class="num">21</td>
117
+ <td class="src"><pre><code class="objc">}</code></pre></td>
118
+ <td class="coverage">1x</td>
119
+ </tr>
120
+ <tr class="never">
121
+ <td class="num">22</td>
122
+ <td class="src"><pre><code class="objc"></code></pre></td>
123
+ <td class="coverage"></td>
124
+ </tr>
125
+ <tr class="never">
126
+ <td class="num">23</td>
127
+ <td class="src"><pre><code class="objc">- (void)tearDown</code></pre></td>
128
+ <td class="coverage"></td>
129
+ </tr>
130
+ <tr class="covered">
131
+ <td class="num">24</td>
132
+ <td class="src"><pre><code class="objc">{</code></pre></td>
133
+ <td class="coverage">1x</td>
134
+ </tr>
135
+ <tr class="covered">
136
+ <td class="num">25</td>
137
+ <td class="src"><pre><code class="objc"> // Put teardown code here. This method is called after the invocation of each test method in the class.</code></pre></td>
138
+ <td class="coverage">1x</td>
139
+ </tr>
140
+ <tr class="covered">
141
+ <td class="num">26</td>
142
+ <td class="src"><pre><code class="objc"> [super tearDown];</code></pre></td>
143
+ <td class="coverage">1x</td>
144
+ </tr>
145
+ <tr class="covered">
146
+ <td class="num">27</td>
147
+ <td class="src"><pre><code class="objc">}</code></pre></td>
148
+ <td class="coverage">1x</td>
149
+ </tr>
150
+ <tr class="never">
151
+ <td class="num">28</td>
152
+ <td class="src"><pre><code class="objc"></code></pre></td>
153
+ <td class="coverage"></td>
154
+ </tr>
155
+ <tr class="never">
156
+ <td class="num">29</td>
157
+ <td class="src"><pre><code class="objc">- (void)testExample</code></pre></td>
158
+ <td class="coverage"></td>
159
+ </tr>
160
+ <tr class="covered">
161
+ <td class="num">30</td>
162
+ <td class="src"><pre><code class="objc">{</code></pre></td>
163
+ <td class="coverage">1x</td>
164
+ </tr>
165
+ <tr class="covered">
166
+ <td class="num">31</td>
167
+ <td class="src"><pre><code class="objc"> XCTAssert(YES, @"woot");</code></pre></td>
168
+ <td class="coverage">1x</td>
169
+ </tr>
170
+ <tr class="covered">
171
+ <td class="num">32</td>
172
+ <td class="src"><pre><code class="objc">}</code></pre></td>
173
+ <td class="coverage">1x</td>
174
+ </tr>
175
+ <tr class="never">
176
+ <td class="num">33</td>
177
+ <td class="src"><pre><code class="objc"></code></pre></td>
178
+ <td class="coverage"></td>
179
+ </tr>
180
+ <tr class="never">
181
+ <td class="num">34</td>
182
+ <td class="src"><pre><code class="objc">@end</code></pre></td>
183
+ <td class="coverage"></td>
184
+ </tr>
185
+ </table>
186
+ </div></div>
187
+ <footer><div class="row">
188
+ <p><a href="https://github.com/venmo/slather">Fork me on Github</a></p>
189
+ <p>&copy; 2016 Slather</p>
190
+ </div></footer><script src="/Users/civetta/Works/Personal/slather/viteinfinite-slather/assets/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script>
191
+ </body>
206
192
  </html>
@@ -1 +1 @@
1
- {"meta":{"timestamp":"2014-10-12 15:21:21.865519"},"symbols_by_file":{"spec/fixtures/fixtures/more_files/Branches.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":16,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":19,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":20,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":21,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":22,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":23,"long_text":"","short_text":"-"},{"line":24,"long_text":"","short_text":"-"},{"line":25,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":26,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":27,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":28,"long_text":"","short_text":"-"},{"line":29,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":30,"long_text":"","short_text":"-"},{"line":31,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":32,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":33,"long_text":"","short_text":"-"},{"line":34,"long_text":"","short_text":"-"},{"line":35,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":36,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":37,"long_text":"","short_text":"-"},{"line":38,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":39,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":40,"long_text":"","short_text":"-"},{"line":41,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":42,"long_text":"","short_text":"-"},{"line":43,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":44,"long_text":"","short_text":"-"},{"line":45,"long_text":"","short_text":"-"}],"spec/fixtures/fixtures/fixtures.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":16,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"-"},{"line":19,"long_text":"","short_text":"-"},{"line":20,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":21,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":22,"long_text":"","short_text":"-"},{"line":23,"long_text":"","short_text":"-"}],"spec/fixtures/fixtures/more_files/peekaview.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":16,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":19,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":20,"long_text":"","short_text":"#####","background_color":"0xFC635E"},{"line":21,"long_text":"","short_text":"-"},{"line":22,"long_text":"","short_text":"-"},{"line":23,"long_text":"","short_text":"-"},{"line":24,"long_text":"","short_text":"-"},{"line":25,"long_text":"","short_text":"-"},{"line":26,"long_text":"","short_text":"-"},{"line":27,"long_text":"","short_text":"-"},{"line":28,"long_text":"","short_text":"-"},{"line":29,"long_text":"","short_text":"-"},{"line":30,"long_text":"","short_text":"-"},{"line":31,"long_text":"","short_text":"-"}],"spec/fixtures/fixturesTests/BranchesTests.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"-"},{"line":16,"long_text":"","short_text":"-"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"-"},{"line":19,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":20,"long_text":"","short_text":"-"},{"line":21,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":22,"long_text":"","short_text":"-"},{"line":23,"long_text":"","short_text":"-"},{"line":24,"long_text":"","short_text":"-"},{"line":25,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":26,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":27,"long_text":"","short_text":"-"},{"line":28,"long_text":"","short_text":"-"},{"line":29,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":30,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":31,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":32,"long_text":"","short_text":"-"},{"line":33,"long_text":"","short_text":"-"},{"line":34,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":35,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":36,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":37,"long_text":"","short_text":"-"},{"line":38,"long_text":"","short_text":"-"}],"spec/fixtures/fixturesTests/fixturesTests.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"-"},{"line":16,"long_text":"","short_text":"-"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"-"},{"line":19,"long_text":"","short_text":"-"},{"line":20,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":21,"long_text":"","short_text":"-"},{"line":22,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":23,"long_text":"","short_text":"-"},{"line":24,"long_text":"","short_text":"-"},{"line":25,"long_text":"","short_text":"-"},{"line":26,"long_text":"","short_text":"-"},{"line":27,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":28,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":29,"long_text":"","short_text":"-"},{"line":30,"long_text":"","short_text":"-"},{"line":31,"long_text":"","short_text":"-"},{"line":32,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":33,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":34,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":35,"long_text":"","short_text":"-"},{"line":36,"long_text":"","short_text":"-"}],"spec/fixtures/fixturesTests/peekaviewTests.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"-"},{"line":16,"long_text":"","short_text":"-"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"-"},{"line":19,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":20,"long_text":"","short_text":"-"},{"line":21,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":22,"long_text":"","short_text":"-"},{"line":23,"long_text":"","short_text":"-"},{"line":24,"long_text":"","short_text":"-"},{"line":25,"long_text":"","short_text":"-"},{"line":26,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":27,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":28,"long_text":"","short_text":"-"},{"line":29,"long_text":"","short_text":"-"},{"line":30,"long_text":"","short_text":"-"},{"line":31,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":32,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":33,"long_text":"","short_text":"-"},{"line":34,"long_text":"","short_text":"-"}]}}
1
+ {"meta":{"timestamp":"2016-01-18 15:39:23.908507"},"symbols_by_file":{"spec/fixtures/fixtures/fixtures.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":15,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":16,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"-"},{"line":19,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":20,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":21,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":22,"long_text":"","short_text":"-"},{"line":23,"long_text":"","short_text":"-"}],"spec/fixtures/fixtures/more_files/Branches.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":15,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":16,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":17,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":18,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":19,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":20,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":21,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":22,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":23,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":24,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":25,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":26,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":27,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":28,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":29,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":30,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":31,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":32,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":33,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":34,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":35,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":36,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":37,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":38,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":39,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":40,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":41,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":42,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":43,"long_text":"","short_text":"0","background_color":"0xFC635E"},{"line":44,"long_text":"","short_text":"-"},{"line":45,"long_text":"","short_text":"-"}],"spec/fixtures/fixturesTests/BranchesTests.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"-"},{"line":16,"long_text":"","short_text":"-"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":19,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":20,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":21,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":22,"long_text":"","short_text":"-"},{"line":23,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":24,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":25,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":26,"long_text":"","short_text":"2","background_color":"0x35CC4B"},{"line":27,"long_text":"","short_text":"-"},{"line":28,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":29,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":30,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":31,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":32,"long_text":"","short_text":"-"},{"line":33,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":34,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":35,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":36,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":37,"long_text":"","short_text":"-"},{"line":38,"long_text":"","short_text":"-"}],"spec/fixtures/fixturesTests/fixturesTests.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"-"},{"line":16,"long_text":"","short_text":"-"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"-"},{"line":19,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":20,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":21,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":22,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":23,"long_text":"","short_text":"-"},{"line":24,"long_text":"","short_text":"-"},{"line":25,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":26,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":27,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":28,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":29,"long_text":"","short_text":"-"},{"line":30,"long_text":"","short_text":"-"},{"line":31,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":32,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":33,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":34,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":35,"long_text":"","short_text":"-"},{"line":36,"long_text":"","short_text":"-"}],"spec/fixtures/fixturesTests/peekaviewTests.m":[{"line":1,"long_text":"","short_text":"-"},{"line":2,"long_text":"","short_text":"-"},{"line":3,"long_text":"","short_text":"-"},{"line":4,"long_text":"","short_text":"-"},{"line":5,"long_text":"","short_text":"-"},{"line":6,"long_text":"","short_text":"-"},{"line":7,"long_text":"","short_text":"-"},{"line":8,"long_text":"","short_text":"-"},{"line":9,"long_text":"","short_text":"-"},{"line":10,"long_text":"","short_text":"-"},{"line":11,"long_text":"","short_text":"-"},{"line":12,"long_text":"","short_text":"-"},{"line":13,"long_text":"","short_text":"-"},{"line":14,"long_text":"","short_text":"-"},{"line":15,"long_text":"","short_text":"-"},{"line":16,"long_text":"","short_text":"-"},{"line":17,"long_text":"","short_text":"-"},{"line":18,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":19,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":20,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":21,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":22,"long_text":"","short_text":"-"},{"line":23,"long_text":"","short_text":"-"},{"line":24,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":25,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":26,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":27,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":28,"long_text":"","short_text":"-"},{"line":29,"long_text":"","short_text":"-"},{"line":30,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":31,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":32,"long_text":"","short_text":"1","background_color":"0x35CC4B"},{"line":33,"long_text":"","short_text":"-"},{"line":34,"long_text":"","short_text":"-"}]}}
@@ -3,7 +3,11 @@ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
3
3
  describe Slather::CoverageFile do
4
4
 
5
5
  let(:fixtures_project) do
6
- Slather::Project.open(FIXTURES_PROJECT_PATH)
6
+ project = Slather::Project.open(FIXTURES_PROJECT_PATH)
7
+ project.build_directory = TEMP_DERIVED_DATA_PATH
8
+ project.send(:configure)
9
+ project.stub(:input_format).and_return("gcov")
10
+ project
7
11
  end
8
12
 
9
13
  let(:coverage_file) do
@@ -109,12 +113,16 @@ OBJC
109
113
 
110
114
  describe "gcov_data" do
111
115
  it "should process the gcno file with gcov and return the contents of the file" do
112
- expect(coverage_file.gcov_data).to include("1: 15: NSLog(@\"tested\");")
116
+ expect(coverage_file.gcov_data).to include(": 15: NSLog(@\"tested\");")
113
117
  end
114
118
  end
115
119
 
116
120
  describe "line coverage" do
117
121
 
122
+ before(:each) {
123
+ fixtures_project.stub(:input_format).and_return("gcov")
124
+ }
125
+
118
126
  let(:line_coverage_file) do
119
127
  fixtures_project.send(:coverage_files).detect { |cf| cf.source_file_pathname.basename.to_s == "fixtures.m" }
120
128
  end
@@ -133,13 +141,13 @@ OBJC
133
141
 
134
142
  describe "num_lines_tested" do
135
143
  it "should return the correct number of lines tested" do
136
- expect(line_coverage_file.num_lines_tested).to eq(2)
144
+ expect(line_coverage_file.num_lines_tested).to eq(3)
137
145
  end
138
146
  end
139
147
 
140
148
  describe "num_lines_testable" do
141
149
  it "should return the correct number of lines that are testable" do
142
- expect(line_coverage_file.num_lines_testable).to eq(4)
150
+ expect(line_coverage_file.num_lines_testable).to eq(6)
143
151
  end
144
152
  end
145
153
 
@@ -172,17 +180,17 @@ OBJC
172
180
  it "should store an array for each line number which contains the hit count for each branch" do
173
181
  data = branch_coverage_file.branch_coverage_data[15]
174
182
  expect(data.length).to eq(2)
175
- expect(data[0]).to eq(1)
176
- expect(data[1]).to eq(1)
183
+ expect(data[0]).to be >= 1
184
+ expect(data[1]).to be >= 1
177
185
 
178
186
  data = branch_coverage_file.branch_coverage_data[18]
179
187
  expect(data.length).to eq(2)
180
188
  expect(data[0]).to eq(0)
181
- expect(data[1]).to eq(1)
189
+ expect(data[1]).to be >= 1
182
190
 
183
191
  data = branch_coverage_file.branch_coverage_data[26]
184
192
  expect(data.length).to eq(2)
185
- expect(data[0]).to eq(2)
193
+ expect(data[0]).to be >= 2
186
194
  expect(data[1]).to eq(0)
187
195
 
188
196
  data = branch_coverage_file.branch_coverage_data[29]
@@ -198,17 +206,17 @@ OBJC
198
206
  it "return the array with branch hit counts for statement at a given line number" do
199
207
  data = branch_coverage_file.branch_coverage_data[15]
200
208
  expect(data.length).to eq(2)
201
- expect(data[0]).to eq(1)
202
- expect(data[1]).to eq(1)
209
+ expect(data[0]).to be >= 1
210
+ expect(data[1]).to be >= 1
203
211
 
204
212
  data = branch_coverage_file.branch_coverage_data[18]
205
213
  expect(data.length).to eq(2)
206
214
  expect(data[0]).to eq(0)
207
- expect(data[1]).to eq(1)
215
+ expect(data[1]).to be >= 1
208
216
 
209
217
  data = branch_coverage_file.branch_coverage_data[26]
210
218
  expect(data.length).to eq(2)
211
- expect(data[0]).to eq(2)
219
+ expect(data[0]).to be >= 2
212
220
  expect(data[1]).to eq(0)
213
221
 
214
222
  data = branch_coverage_file.branch_coverage_data[29]