[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]