diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-09 04:22:50 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-03-09 04:22:50 +0000 |
commit | e1e223a874d99325f2ddbca5d0f950ba0c2e6c2d (patch) | |
tree | 5f85b1bc5760c8eb4c3da13b7d9e7108951b34e2 /test/lib/memory_status.rb | |
parent | b3f4db922756d034daa1e2aa27278ea10d94de55 (diff) | |
download | ruby-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/memory_status.rb')
-rw-r--r-- | test/lib/memory_status.rb | 29 |
1 files changed, 17 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 |