mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	test/drb/test_drbssl.rb: skip LeakChecker as openssl keeps /dev/random
and /dev/urandom intentionally.  OpenSSL::PKey::RSA.new opens the two
random generators and keeps the file descriptors.
93f99b681a/crypto/rand/rand_unix.c (L674)
They are detected by the LeakChecker as fd leak, but it is intentional.
http://rubyci.s3.amazonaws.com/graviton2/ruby-master/log/20200526T160005Z.log.html.gz
```
[  597/20199] DRbTests::TestDRbSSLAry#test_01 = 0.29 s
Leaked file descriptor: DRbTests::TestDRbSSLAry#test_01: 8 #<File::Stat dev=0x6, ino=11, mode=020666, nlink=1, uid=0, gid=0, rdev=0x109, size=0, blksize=4096, blocks=0, atime=2020-05-23 14:45:13.751999995 +0000, mtime=2020-05-23 14:45:13.751999995 +0000, ctime=2020-05-23 14:45:13.751999995 +0000>
Leaked file descriptor: DRbTests::TestDRbSSLAry#test_01: 9 #<File::Stat dev=0x6, ino=10, mode=020666, nlink=1, uid=0, gid=0, rdev=0x108, size=0, blksize=4096, blocks=0, atime=2020-05-23 14:45:13.755999995 +0000, mtime=2020-05-23 14:45:13.755999995 +0000, ctime=2020-05-23 14:45:13.755999995 +0000>
```
			
			
This commit is contained in:
		
							parent
							
								
									135c6a4b99
								
							
						
					
					
						commit
						962c302a1a
					
				
					 2 changed files with 8 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -59,6 +59,7 @@ end
 | 
			
		|||
class TestDRbSSLAry < Test::Unit::TestCase
 | 
			
		||||
  include DRbAry
 | 
			
		||||
  def setup
 | 
			
		||||
    LeakChecker.skip if defined?(LeakChecker)
 | 
			
		||||
    @drb_service = DRbSSLService.new
 | 
			
		||||
    super
 | 
			
		||||
    setup_service 'ut_array_drbssl.rb'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ class LeakChecker
 | 
			
		|||
 | 
			
		||||
  def initialize
 | 
			
		||||
    @fd_info = find_fds
 | 
			
		||||
    @@skip = false
 | 
			
		||||
    @tempfile_info = find_tempfiles
 | 
			
		||||
    @thread_info = find_threads
 | 
			
		||||
    @env_info = find_env
 | 
			
		||||
| 
						 | 
				
			
			@ -63,7 +64,7 @@ class LeakChecker
 | 
			
		|||
      }
 | 
			
		||||
    end
 | 
			
		||||
    fd_leaked = live2 - live1
 | 
			
		||||
    if !fd_leaked.empty?
 | 
			
		||||
    if !@@skip && !fd_leaked.empty?
 | 
			
		||||
      leaked = true
 | 
			
		||||
      h = {}
 | 
			
		||||
      ObjectSpace.each_object(IO) {|io|
 | 
			
		||||
| 
						 | 
				
			
			@ -123,6 +124,7 @@ class LeakChecker
 | 
			
		|||
      }
 | 
			
		||||
    end
 | 
			
		||||
    @fd_info = live2
 | 
			
		||||
    @@skip = false
 | 
			
		||||
    return leaked
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -290,4 +292,8 @@ class LeakChecker
 | 
			
		|||
    end
 | 
			
		||||
    output.puts(*a)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.skip
 | 
			
		||||
    @@skip = true
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue