ruby-changes:41975
From: nobu <ko1@a...>
Date: Wed, 9 Mar 2016 13:22:55 +0900 (JST)
Subject: [ruby-changes:41975] nobu:r54049 (trunk): memory_status.rb: independent of MiniTest
nobu 2016-03-09 13:22:50 +0900 (Wed, 09 Mar 2016) New Revision: 54049 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=54049 Log: 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. Modified files: trunk/ChangeLog trunk/test/lib/memory_status.rb trunk/test/lib/test/unit/assertions.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 54048) +++ ChangeLog (revision 54049) @@ -1,3 +1,11 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Wed Mar 9 13:22:49 2016 Nobuyoshi Nakada <nobu@r...> + + * 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. + Wed Mar 9 09:19:55 2016 Rei Odaira <Rei.Odaira@g...> * test/io/wait/test_io_wait.rb (test_wait_readwrite_timeout): Index: test/lib/memory_status.rb =================================================================== --- test/lib/memory_status.rb (revision 54048) +++ test/lib/memory_status.rb (revision 54049) @@ -58,13 +58,12 @@ module Memory https://github.com/ruby/ruby/blob/trunk/test/lib/memory_status.rb#L58 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 https://github.com/ruby/ruby/blob/trunk/test/lib/memory_status.rb#L72 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 https://github.com/ruby/ruby/blob/trunk/test/lib/memory_status.rb#L136 ] _, 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 Index: test/lib/test/unit/assertions.rb =================================================================== --- test/lib/test/unit/assertions.rb (revision 54048) +++ test/lib/test/unit/assertions.rb (revision 54049) @@ -638,6 +638,8 @@ eom https://github.com/ruby/ruby/blob/trunk/test/lib/test/unit/assertions.rb#L638 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) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/