simplecov 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CHANGELOG.md +34 -24
- data/README.md +1 -4
- data/Rakefile +1 -0
- data/lib/simplecov.rb +1 -1
- data/lib/simplecov/configuration.rb +4 -4
- data/lib/simplecov/result.rb +3 -2
- data/lib/simplecov/source_file.rb +18 -4
- data/lib/simplecov/version.rb +1 -1
- data/test/fixtures/iso-8859.rb +3 -0
- data/test/test_source_file.rb +10 -1
- metadata +23 -22
- data/.rvmrc +0 -1
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,28 +1,39 @@
|
|
1
|
-
v0.6.
|
2
|
-
|
1
|
+
v0.6.4, 2012-05-10 ([changes](https://github.com/colszowka/simplecov/compare/v0.6.3...v0.6.4))
|
2
|
+
-------------------
|
3
3
|
|
4
|
-
*
|
4
|
+
* [BUGFIX] Encoding issues with ISO-8859-encoded source files fixed.
|
5
|
+
See https://github.com/colszowka/simplecov/pull/117. (thanks to @Deradon)
|
6
|
+
* [BUGFIX] Ensure ZeroDivisionErrors won't occur when calculating the coverage result, which previously
|
7
|
+
could happen in certain cases. See https://github.com/colszowka/simplecov/pull/128. (thanks to @japgolly)
|
8
|
+
* [REFACTORING] Changed a couple instance variable lookups so SimpleCov does not cause a lot of warnings when
|
9
|
+
running ruby at a higher warning level. See https://github.com/colszowka/simplecov/issues/106 and
|
10
|
+
https://github.com/colszowka/simplecov/pull/119. (thanks to @mvz and @gioele)
|
11
|
+
|
12
|
+
|
13
|
+
v0.6.3, 2012-05-10 ([changes](https://github.com/colszowka/simplecov/compare/v0.6.2...v0.6.3))
|
14
|
+
-------------------
|
15
|
+
|
16
|
+
* [BUGFIX] Modified the API-changes for newer multi_json versions introduced with #122 and v0.6.2 so
|
5
17
|
they are backwards-compatible with older multi_json gems in order to avoid simplecov polluting
|
6
18
|
the multi_json minimum version requirement for entire applications.
|
7
19
|
See https://github.com/colszowka/simplecov/issues/132
|
8
20
|
* Added appraisal gem to the test setup in order to run the test suite against both 1.0 and 1.3
|
9
21
|
multi_json gems and ensure the above actually works :)
|
10
22
|
|
11
|
-
v0.6.2
|
12
|
-
|
13
|
-
**Note: Yanked 2012-05-10 because of backwards-incompatibilty of the updated multi_json api**
|
23
|
+
v0.6.2, 2012-04-20 ([changes](https://github.com/colszowka/simplecov/compare/v0.6.1...v0.6.2))
|
24
|
+
-------------------
|
14
25
|
|
15
|
-
* Updated to latest version of MultiJSON and its new API (thanks to @sferik and @ronen).
|
26
|
+
* [Updated to latest version of MultiJSON and its new API (thanks to @sferik and @ronen).
|
16
27
|
See https://github.com/colszowka/simplecov/pull/122
|
17
28
|
|
18
|
-
v0.6.1
|
19
|
-
|
29
|
+
v0.6.1, 2012-02-24 ([changes](https://github.com/colszowka/simplecov/compare/v0.6.0...v0.6.1))
|
30
|
+
-------------------
|
20
31
|
|
21
32
|
* [BUGFIX] Don't force-load Railtie on Rails < 3. Fixes regression introduced with
|
22
33
|
#83. See https://github.com/colszowka/simplecov/issues/113
|
23
34
|
|
24
|
-
v0.6.0
|
25
|
-
|
35
|
+
v0.6.0, 2012-02-22 ([changes](https://github.com/colszowka/simplecov/compare/v0.5.4...v0.6.0))
|
36
|
+
-------------------
|
26
37
|
|
27
38
|
* [FEATURE] Auto-magic `rake simplecov` task for rails
|
28
39
|
(see https://github.com/colszowka/simplecov/pull/83, thanks @sunaku)
|
@@ -37,8 +48,8 @@ v0.6.0 (2012-02-22)
|
|
37
48
|
* Some refactorings and cleanups as usual. Please refer to the github compare view for a full
|
38
49
|
list of changes: https://github.com/colszowka/simplecov/compare/v0.5.4...v0.6.0
|
39
50
|
|
40
|
-
v0.5.4
|
41
|
-
|
51
|
+
v0.5.4, 2011-10-12 ([changes](https://github.com/colszowka/simplecov/compare/v0.5.3...v0.5.4))
|
52
|
+
-------------------
|
42
53
|
|
43
54
|
* Do not give exit code 0 when there are exceptions prior to tests
|
44
55
|
(see https://github.com/colszowka/simplecov/issues/41, thanks @nbogie)
|
@@ -50,8 +61,8 @@ v0.5.4 (2011-10-12)
|
|
50
61
|
(see https://github.com/colszowka/simplecov/issues/86)
|
51
62
|
* Readme formatted in Markdown :)
|
52
63
|
|
53
|
-
v0.5.3
|
54
|
-
|
64
|
+
v0.5.3, 2011-09-13 ([changes](https://github.com/colszowka/simplecov/compare/v0.5.2...v0.5.3))
|
65
|
+
-------------------
|
55
66
|
|
56
67
|
* Fix for encoding issues that came from the nocov processing mechanism
|
57
68
|
(see https://github.com/colszowka/simplecov/issues/71)
|
@@ -65,14 +76,14 @@ v0.5.3 (2011-09-13)
|
|
65
76
|
* Refactored nocov processing and made it configurable using SimpleCov.ncov_token (or it's
|
66
77
|
alias SimpleCov.skip_token)
|
67
78
|
|
68
|
-
v0.5.2
|
69
|
-
|
79
|
+
v0.5.2, 2011-09-12 ([changes](https://github.com/colszowka/simplecov/compare/v0.5.1...v0.5.2))
|
80
|
+
-------------------
|
70
81
|
|
71
82
|
* Another fix for a bug in JSON processing introduced with MultiJSON in 0.5.1
|
72
83
|
(see https://github.com/colszowka/simplecov/pull/75, thanks @sferik)
|
73
84
|
|
74
|
-
v0.5.1
|
75
|
-
|
85
|
+
v0.5.1, 2011-09-12 ([changes](https://github.com/colszowka/simplecov/compare/v0.5.0...v0.5.1))
|
86
|
+
-------------------
|
76
87
|
**Note: Yanked 2011-09-12 because the MultiJSON-patch had a crucial bug**
|
77
88
|
|
78
89
|
* Fix for invalid gemspec dependency string (see https://github.com/colszowka/simplecov/pull/70,
|
@@ -82,8 +93,8 @@ v0.5.1 (2011-09-12)
|
|
82
93
|
is unavailable (see https://github.com/colszowka/simplecov/issues/72
|
83
94
|
and https://github.com/colszowka/simplecov/pull/74, thanks @sferik)
|
84
95
|
|
85
|
-
v0.5.0
|
86
|
-
|
96
|
+
v0.5.0, 2011-09-09 ([changes](https://github.com/colszowka/simplecov/compare/v0.4.2...v0.5.4))
|
97
|
+
-------------------
|
87
98
|
**Note: Yanked 2011-09-09 because of trouble with the gemspec.**
|
88
99
|
|
89
100
|
* JSON is now used instead of YAML for resultset caching (used for merging). Should resolve
|
@@ -122,10 +133,9 @@ v0.5.0 (2011-09-09)
|
|
122
133
|
|
123
134
|
* Full compatibility with Ruby 1.9.3.preview1
|
124
135
|
|
125
|
-
HTML Formatter:
|
126
|
-
---------------
|
136
|
+
### HTML Formatter:
|
127
137
|
|
128
138
|
* The display of source files has been improved a lot. Weird scrolling trouble, out-of-scope line hit counts
|
129
139
|
and such should be a thing of the past. Also, it is prettier now.
|
130
140
|
* Source files are now syntax highlighted
|
131
|
-
* File paths no longer have that annoying './' in front of them
|
141
|
+
* File paths no longer have that annoying './' in front of them
|
data/README.md
CHANGED
@@ -7,7 +7,6 @@ SimpleCov [![Build Status](https://secure.travis-ci.org/colszowka/simplecov.png)
|
|
7
7
|
* [Changelog]
|
8
8
|
* [Rubygem]
|
9
9
|
* [Continuous Integration]
|
10
|
-
* IRC #simplecov on Freenode
|
11
10
|
|
12
11
|
[Coverage]: http://www.ruby-doc.org/ruby-1.9/classes/Coverage.html "API doc for Ruby 1.9's Coverage library"
|
13
12
|
[Source Code]: https://github.com/colszowka/simplecov "Source Code @ GitHub"
|
@@ -470,9 +469,7 @@ If you want to contribute, please:
|
|
470
469
|
|
471
470
|
## Kudos
|
472
471
|
|
473
|
-
Thanks to Aaron Patterson
|
474
|
-
for this!
|
475
|
-
|
472
|
+
Thanks to Aaron Patterson for the original idea for this!
|
476
473
|
|
477
474
|
## Copyright
|
478
475
|
|
data/Rakefile
CHANGED
data/lib/simplecov.rb
CHANGED
@@ -14,7 +14,7 @@ module SimpleCov::Configuration
|
|
14
14
|
# Configure with SimpleCov.root('/my/project/path')
|
15
15
|
#
|
16
16
|
def root(root=nil)
|
17
|
-
return @root if @root and root.nil?
|
17
|
+
return @root if defined? @root and root.nil?
|
18
18
|
@root = File.expand_path(root || Dir.getwd)
|
19
19
|
end
|
20
20
|
|
@@ -24,7 +24,7 @@ module SimpleCov::Configuration
|
|
24
24
|
# Configure with SimpleCov.coverage_dir('cov')
|
25
25
|
#
|
26
26
|
def coverage_dir(dir=nil)
|
27
|
-
return @coverage_dir if @coverage_dir and dir.nil?
|
27
|
+
return @coverage_dir if defined? @coverage_dir and dir.nil?
|
28
28
|
@coverage_dir = (dir || 'coverage')
|
29
29
|
end
|
30
30
|
|
@@ -67,7 +67,7 @@ module SimpleCov::Configuration
|
|
67
67
|
# Configure with: SimpleCov.formatter(SimpleCov::Formatter::SimpleFormatter)
|
68
68
|
#
|
69
69
|
def formatter(formatter=nil)
|
70
|
-
return @formatter if @formatter and formatter.nil?
|
70
|
+
return @formatter if defined? @formatter and formatter.nil?
|
71
71
|
@formatter = formatter
|
72
72
|
raise "No formatter configured. Please specify a formatter using SimpleCov.formatter = SimpleCov::Formatter::SimpleFormatter" unless @formatter
|
73
73
|
@formatter
|
@@ -81,7 +81,7 @@ module SimpleCov::Configuration
|
|
81
81
|
# Configure with SimpleCov.nocov_token('skip') or it's alias SimpleCov.skip_token('skip')
|
82
82
|
#
|
83
83
|
def nocov_token(nocov_token=nil)
|
84
|
-
return @nocov_token if @nocov_token and nocov_token.nil?
|
84
|
+
return @nocov_token if defined? @nocov_token and nocov_token.nil?
|
85
85
|
@nocov_token = (nocov_token || 'nocov')
|
86
86
|
end
|
87
87
|
alias_method :skip_token, :nocov_token
|
data/lib/simplecov/result.rb
CHANGED
@@ -44,6 +44,7 @@ module SimpleCov
|
|
44
44
|
|
45
45
|
# The multiple of coverage for this result
|
46
46
|
def covered_strength
|
47
|
+
return 0 if total_lines.zero?
|
47
48
|
return @covered_strength if @covered_strength
|
48
49
|
m = 0
|
49
50
|
@files.each do |file|
|
@@ -58,7 +59,7 @@ module SimpleCov
|
|
58
59
|
|
59
60
|
# Returns the count of lines that are covered
|
60
61
|
def covered_lines
|
61
|
-
return @covered_lines if @covered_lines
|
62
|
+
return @covered_lines if defined? @covered_lines
|
62
63
|
@covered_lines = 0
|
63
64
|
@files.each do |file|
|
64
65
|
original_result[file.filename].each do |line_result|
|
@@ -70,7 +71,7 @@ module SimpleCov
|
|
70
71
|
|
71
72
|
# Returns the count of missed lines
|
72
73
|
def missed_lines
|
73
|
-
return @missed_lines if @missed_lines
|
74
|
+
return @missed_lines if defined? @missed_lines
|
74
75
|
@missed_lines = 0
|
75
76
|
@files.each do |file|
|
76
77
|
original_result[file.filename].each do |line_result|
|
@@ -30,6 +30,7 @@ module SimpleCov
|
|
30
30
|
raise ArgumentError, "Only Fixnum and nil accepted for coverage" unless coverage.kind_of?(Fixnum) or coverage.nil?
|
31
31
|
@src, @line_number, @coverage = src, line_number, coverage
|
32
32
|
@skipped = false
|
33
|
+
@src.encode!('UTF-8', 'UTF-8', :invalid => :replace) if @src.respond_to?(:encode!)
|
33
34
|
end
|
34
35
|
|
35
36
|
# Returns true if this is a line that should have been covered, but was not
|
@@ -84,7 +85,7 @@ module SimpleCov
|
|
84
85
|
# Returns all source lines for this file as instances of SimpleCov::SourceFile::Line,
|
85
86
|
# and thus including coverage data. Aliased as :source_lines
|
86
87
|
def lines
|
87
|
-
return @lines
|
88
|
+
return @lines if defined? @lines
|
88
89
|
|
89
90
|
# Warning to identify condition from Issue #56
|
90
91
|
if coverage.size > src.size
|
@@ -109,18 +110,30 @@ module SimpleCov
|
|
109
110
|
# The coverage for this file in percent. 0 if the file has no relevant lines
|
110
111
|
def covered_percent
|
111
112
|
return 100.0 if lines.length == 0 or lines.length == never_lines.count
|
112
|
-
|
113
|
+
relevant_lines = lines.count - never_lines.count - skipped_lines.count
|
114
|
+
if relevant_lines == 0
|
115
|
+
0
|
116
|
+
else
|
117
|
+
(covered_lines.count) * 100 / relevant_lines.to_f
|
118
|
+
end
|
113
119
|
end
|
114
120
|
|
115
121
|
def covered_strength
|
116
122
|
return 0 if lines.length == 0 or lines.length == never_lines.count
|
123
|
+
|
117
124
|
lines_strength = 0
|
118
125
|
lines.each do |c|
|
119
126
|
lines_strength += c.coverage if c.coverage
|
120
127
|
end
|
128
|
+
|
121
129
|
effective_lines_count = (lines.count - never_lines.count - skipped_lines.count).to_f
|
122
|
-
|
123
|
-
|
130
|
+
|
131
|
+
if effective_lines_count == 0
|
132
|
+
0
|
133
|
+
else
|
134
|
+
strength = lines_strength / effective_lines_count
|
135
|
+
round_float(strength, 1)
|
136
|
+
end
|
124
137
|
end
|
125
138
|
|
126
139
|
# Returns all covered lines as SimpleCov::SourceFile::Line
|
@@ -172,3 +185,4 @@ module SimpleCov
|
|
172
185
|
end
|
173
186
|
end
|
174
187
|
end
|
188
|
+
|
data/lib/simplecov/version.rb
CHANGED
data/test/test_source_file.rb
CHANGED
@@ -68,7 +68,7 @@ class TestSourceFile < Test::Unit::TestCase
|
|
68
68
|
@source_file.lines
|
69
69
|
end
|
70
70
|
|
71
|
-
assert_match
|
71
|
+
assert_match(/^Warning: coverage data provided/, captured_output)
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
@@ -80,7 +80,16 @@ class TestSourceFile < Test::Unit::TestCase
|
|
80
80
|
source_file.process_skipped_lines!
|
81
81
|
end
|
82
82
|
end
|
83
|
+
|
84
|
+
should "handle iso-8859 encoded source files" do
|
85
|
+
source_file = SimpleCov::SourceFile.new(source_fixture('iso-8859.rb'), [nil, nil, 1])
|
86
|
+
|
87
|
+
assert_nothing_raised do
|
88
|
+
source_file.process_skipped_lines!
|
89
|
+
end
|
90
|
+
end
|
83
91
|
end
|
84
92
|
|
85
93
|
end
|
86
94
|
end
|
95
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simplecov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-05-10 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: multi_json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70152796757480 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70152796757480
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: simplecov-html
|
27
|
-
requirement: &
|
27
|
+
requirement: &70152796756780 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.5.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70152796756780
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: aruba
|
38
|
-
requirement: &
|
38
|
+
requirement: &70152796756220 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70152796756220
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: capybara
|
49
|
-
requirement: &
|
49
|
+
requirement: &70152796755580 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70152796755580
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: appraisal
|
60
|
-
requirement: &
|
60
|
+
requirement: &70152796755020 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70152796755020
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: cucumber
|
71
|
-
requirement: &
|
71
|
+
requirement: &70152796754340 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.1.4
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70152796754340
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rake
|
82
|
-
requirement: &
|
82
|
+
requirement: &70152796769980 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70152796769980
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rspec
|
93
|
-
requirement: &
|
93
|
+
requirement: &70152796769100 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70152796769100
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: shoulda
|
104
|
-
requirement: &
|
104
|
+
requirement: &70152796768260 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *70152796768260
|
113
113
|
description: Code coverage for Ruby 1.9 with a powerful configuration library and
|
114
114
|
automatic merging of coverage across test suites
|
115
115
|
email:
|
@@ -119,7 +119,6 @@ extensions: []
|
|
119
119
|
extra_rdoc_files: []
|
120
120
|
files:
|
121
121
|
- .gitignore
|
122
|
-
- .rvmrc
|
123
122
|
- .travis.yml
|
124
123
|
- Appraisals
|
125
124
|
- CHANGELOG.md
|
@@ -203,6 +202,7 @@ files:
|
|
203
202
|
- test/fixtures/frameworks/rspec_good.rb
|
204
203
|
- test/fixtures/frameworks/testunit_bad.rb
|
205
204
|
- test/fixtures/frameworks/testunit_good.rb
|
205
|
+
- test/fixtures/iso-8859.rb
|
206
206
|
- test/fixtures/resultset1.rb
|
207
207
|
- test/fixtures/resultset2.rb
|
208
208
|
- test/fixtures/sample.rb
|
@@ -233,7 +233,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
233
233
|
version: '0'
|
234
234
|
segments:
|
235
235
|
- 0
|
236
|
-
hash:
|
236
|
+
hash: 1802100492995601719
|
237
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
238
238
|
none: false
|
239
239
|
requirements:
|
@@ -242,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
242
|
version: '0'
|
243
243
|
segments:
|
244
244
|
- 0
|
245
|
-
hash:
|
245
|
+
hash: 1802100492995601719
|
246
246
|
requirements: []
|
247
247
|
rubyforge_project:
|
248
248
|
rubygems_version: 1.8.16
|
@@ -305,6 +305,7 @@ test_files:
|
|
305
305
|
- test/fixtures/frameworks/rspec_good.rb
|
306
306
|
- test/fixtures/frameworks/testunit_bad.rb
|
307
307
|
- test/fixtures/frameworks/testunit_good.rb
|
308
|
+
- test/fixtures/iso-8859.rb
|
308
309
|
- test/fixtures/resultset1.rb
|
309
310
|
- test/fixtures/resultset2.rb
|
310
311
|
- test/fixtures/sample.rb
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use 1.9.3-p125
|