aboutsummaryrefslogtreecommitdiffstats
path: root/test/lib
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-09 04:22:50 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-03-09 04:22:50 +0000
commite1e223a874d99325f2ddbca5d0f950ba0c2e6c2d (patch)
tree5f85b1bc5760c8eb4c3da13b7d9e7108951b34e2 /test/lib
parentb3f4db922756d034daa1e2aa27278ea10d94de55 (diff)
downloadruby-e1e223a874d99325f2ddbca5d0f950ba0c2e6c2d.tar.gz
memory_status.rb: independent of MiniTest
* test/lib/memory_status.rb: make Memory::Status independent of MiniTest::Skip. * test/lib/test/unit/assertions.rb (assert_no_memory_leak): skip if Memory::Status is not available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54049 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/lib')
-rw-r--r--test/lib/memory_status.rb29
-rw-r--r--test/lib/test/unit/assertions.rb2
2 files changed, 19 insertions, 12 deletions
diff --git a/test/lib/memory_status.rb b/test/lib/memory_status.rb
index 19b785caf0..35530f2f4b 100644
--- a/test/lib/memory_status.rb
+++ b/test/lib/memory_status.rb
@@ -58,13 +58,12 @@ module Memory
yield :size, info.PagefileUsage
end
end
- else
- PAT = /^\s*(\d+)\s+(\d+)$/
- require_relative 'find_executable'
- if PSCMD = EnvUtil.find_executable("ps", "-ovsz=", "-orss=", "-p", $$.to_s) {|out| PAT =~ out}
- PSCMD.pop
- end
- raise MiniTest::Skip, "ps command not found" unless PSCMD
+ when (require_relative 'find_executable'
+ pat = /^\s*(\d+)\s+(\d+)$/
+ pscmd = EnvUtil.find_executable("ps", "-ovsz=", "-orss=", "-p", $$.to_s) {|out| pat =~ out})
+ pscmd.pop
+ PAT = pat
+ PSCMD = pscmd
keys << :size << :rss
def self.read_status
@@ -73,19 +72,25 @@ module Memory
yield :rss, $2.to_i*1024
end
end
+ else
+ def self.read_status
+ raise NotImplementedError, "unsupported platform"
+ end
end
- Status = Struct.new(*keys)
+ if !keys.empty?
+ Status = Struct.new(*keys)
+ end
+end
- class Status
+if defined?(Memory::Status)
+ class Memory::Status
def _update
Memory.read_status do |key, val|
self[key] = val
end
end
- end
- class Status
Header = members.map {|k| k.to_s.upcase.rjust(6)}.join('')
Format = "%6d"
@@ -131,7 +136,7 @@ module Memory
]
_, err, status = EnvUtil.invoke_ruby(args, "exit(0)", true, true)
if status.exitstatus == 0 && err.to_s.empty? then
- NO_MEMORY_LEAK_ENVS = envs
+ Memory::NO_MEMORY_LEAK_ENVS = envs
end
end
end #case RUBY_PLATFORM
diff --git a/test/lib/test/unit/assertions.rb b/test/lib/test/unit/assertions.rb
index 25c0c10ae8..dd4e0fccf0 100644
--- a/test/lib/test/unit/assertions.rb
+++ b/test/lib/test/unit/assertions.rb
@@ -638,6 +638,8 @@ eom
def assert_no_memory_leak(args, prepare, code, message=nil, limit: 2.0, rss: false, **opt)
require_relative '../../memory_status'
+ raise MiniTest::Skip, "unsupported platform" unless defined?(Memory::Status)
+
token = "\e[7;1m#{$$.to_s}:#{Time.now.strftime('%s.%L')}:#{rand(0x10000).to_s(16)}:\e[m"
token_dump = token.dump
token_re = Regexp.quote(token)