minitest-gcstats 1.1.0 → 1.2.0
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +10 -0
- data/Rakefile +6 -1
- data/lib/minitest/gcstats.rb +28 -1
- data/test/minitest/test_gcstats.rb +71 -0
- metadata +23 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e87bd43826e6d8e881bc71592e3c2f4473f8256f
|
4
|
+
data.tar.gz: 57507bcf17539fa5983d830812bd5a5ea27a01cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13759e48f90e6c5c1e7a1c98ef27693ae684f9f49006ecd4642c32b3586d8402b68250267e6e2566845af427a70122abe185575832d0e9f0a6af151a981b9fb4
|
7
|
+
data.tar.gz: a585ed6cceb82cc4e982ae1bea1003b6907f955f475c2369a0be5b027091b2fa1beea7c9e7df5e852003a25ba6cabd400307a720222cb5a406ee3f109754b975
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -3,15 +3,20 @@
|
|
3
3
|
require "rubygems"
|
4
4
|
require "hoe"
|
5
5
|
|
6
|
-
Hoe.plugin :isolate
|
7
6
|
Hoe.plugin :seattlerb
|
8
7
|
Hoe.plugin :rdoc
|
8
|
+
Hoe.plugin :isolate
|
9
9
|
|
10
10
|
Hoe.add_include_dirs "../../minitest/dev/lib"
|
11
11
|
|
12
12
|
Hoe.spec "minitest-gcstats" do
|
13
13
|
developer "Ryan Davis", "ryand-ruby@zenspider.com"
|
14
14
|
license "MIT"
|
15
|
+
|
16
|
+
dependency "minitest", "~> 5.0"
|
17
|
+
dependency "rake", "< 11", :developer
|
18
|
+
|
19
|
+
multiruby_skip << '1.8'
|
15
20
|
end
|
16
21
|
|
17
22
|
# vim: syntax=ruby
|
data/lib/minitest/gcstats.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require "minitest"
|
2
2
|
|
3
3
|
module Minitest::GCStats
|
4
|
-
VERSION = "1.
|
4
|
+
VERSION = "1.2.0"
|
5
5
|
|
6
6
|
attr_accessor :gc_stats
|
7
7
|
|
@@ -30,6 +30,33 @@ module Minitest::GCStats
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
module Minitest::Assertions
|
34
|
+
##
|
35
|
+
# Assert that the number of object allocations during block
|
36
|
+
# execution is what you think it is. Uses +assert_operator+ so +op+
|
37
|
+
# should be something like :== or :<=. Defaults to :==.
|
38
|
+
#
|
39
|
+
# assert_allocations 3 do ... end
|
40
|
+
#
|
41
|
+
# is equivalent to:
|
42
|
+
#
|
43
|
+
# assert_allocations :==, 3 do ... end
|
44
|
+
|
45
|
+
def assert_allocations op_or_exp, exp = nil, msg = nil
|
46
|
+
m0 = Minitest::GCStats.current
|
47
|
+
yield
|
48
|
+
m1 = Minitest::GCStats.current
|
49
|
+
|
50
|
+
op = op_or_exp
|
51
|
+
op, exp, msg = :==, op, exp if Integer === op
|
52
|
+
|
53
|
+
act = m1 - m0
|
54
|
+
msg ||= "Object allocations"
|
55
|
+
|
56
|
+
assert_operator act, op, exp, msg
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
33
60
|
class Minitest::GCStatsReporter < Minitest::AbstractReporter
|
34
61
|
attr_accessor :stats, :max
|
35
62
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "minitest/autorun"
|
2
|
+
require "minitest/gcstats"
|
2
3
|
|
3
4
|
module TestMinitest; end
|
4
5
|
|
@@ -347,3 +348,73 @@ class TestMinitest::TestGcstats < Minitest::Test
|
|
347
348
|
# do nothing
|
348
349
|
end
|
349
350
|
end
|
351
|
+
|
352
|
+
class TestAssertObject < Minitest::Test
|
353
|
+
def test_assert_allocations
|
354
|
+
assert_allocations 1 do
|
355
|
+
[]
|
356
|
+
end
|
357
|
+
end
|
358
|
+
|
359
|
+
def test_assert_allocations_0
|
360
|
+
assert_allocations 0 do
|
361
|
+
# nothing
|
362
|
+
end
|
363
|
+
end
|
364
|
+
|
365
|
+
def test_assert_allocations_multi
|
366
|
+
assert_allocations 3 do
|
367
|
+
3.times { Object.new }
|
368
|
+
end
|
369
|
+
end
|
370
|
+
|
371
|
+
def test_assert_allocations_multi_eq
|
372
|
+
assert_allocations :==, 3 do
|
373
|
+
3.times { Object.new }
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
def test_assert_allocations_neg_lt
|
378
|
+
assert_allocations :<=, 3 do
|
379
|
+
2.times { Object.new }
|
380
|
+
end
|
381
|
+
end
|
382
|
+
|
383
|
+
def test_assert_allocations_neg_eq
|
384
|
+
assert_allocations :<=, 3 do
|
385
|
+
3.times { Object.new }
|
386
|
+
end
|
387
|
+
end
|
388
|
+
|
389
|
+
def assert_triggered expected, klass = Minitest::Assertion
|
390
|
+
e = assert_raises klass do
|
391
|
+
yield
|
392
|
+
end
|
393
|
+
|
394
|
+
msg = e.message.sub(/(---Backtrace---).*/m, '\1')
|
395
|
+
msg.gsub!(/\(oid=[-0-9]+\)/, "(oid=N)")
|
396
|
+
msg.gsub!(/(\d\.\d{6})\d+/, '\1xxx') # normalize: ruby version, impl, platform
|
397
|
+
|
398
|
+
assert_equal expected, msg
|
399
|
+
end
|
400
|
+
|
401
|
+
def test_assert_allocations_bad
|
402
|
+
exp = "Object allocations.\nExpected 2 to be == 1."
|
403
|
+
|
404
|
+
assert_triggered exp do
|
405
|
+
assert_allocations 1 do
|
406
|
+
[Object.new]
|
407
|
+
end
|
408
|
+
end
|
409
|
+
end
|
410
|
+
|
411
|
+
def test_assert_allocations_neg_bad
|
412
|
+
exp = "Object allocations.\nExpected 5 to be <= 3."
|
413
|
+
|
414
|
+
assert_triggered exp do
|
415
|
+
assert_allocations :<=, 3 do
|
416
|
+
5.times { Object.new }
|
417
|
+
end
|
418
|
+
end
|
419
|
+
end
|
420
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-gcstats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
xJcC6UN6NHMOVMyAXsr2HR0gRRx4ofN1LoP2KhXzSr8UMvQYlwPmE0N5GQv1b5AO
|
30
30
|
VpzF30vNaJK6ZT7xlIsIlwmH
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2015-05-07 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: minitest
|
@@ -37,14 +37,14 @@ dependencies:
|
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '5.
|
41
|
-
type: :
|
40
|
+
version: '5.0'
|
41
|
+
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '5.
|
47
|
+
version: '5.0'
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rdoc
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,20 +59,34 @@ dependencies:
|
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '4.0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - <
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '11'
|
69
|
+
type: :development
|
70
|
+
prerelease: false
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - <
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '11'
|
62
76
|
- !ruby/object:Gem::Dependency
|
63
77
|
name: hoe
|
64
78
|
requirement: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - ~>
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '3.
|
82
|
+
version: '3.13'
|
69
83
|
type: :development
|
70
84
|
prerelease: false
|
71
85
|
version_requirements: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
87
|
- - ~>
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '3.
|
89
|
+
version: '3.13'
|
76
90
|
description: |-
|
77
91
|
A minitest plugin that adds a report of the top tests by number of
|
78
92
|
objects allocated.
|
@@ -116,10 +130,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
130
|
version: '0'
|
117
131
|
requirements: []
|
118
132
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.4.
|
133
|
+
rubygems_version: 2.4.5
|
120
134
|
signing_key:
|
121
135
|
specification_version: 4
|
122
136
|
summary: A minitest plugin that adds a report of the top tests by number of objects
|
123
137
|
allocated.
|
124
|
-
test_files:
|
125
|
-
- test/minitest/test_gcstats.rb
|
138
|
+
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|