mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* test/inlinetest.rb, test/{test_generator.rb,test_ipaddr.rb,
test_pathname.rb,test_pp.rb,test_prettyprint.rb,test_set.rb,
          test_time.rb,test_tsort.rb: added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
			
			
This commit is contained in:
		
							parent
							
								
									ff1b89a96d
								
							
						
					
					
						commit
						79c0e644a1
					
				
					 11 changed files with 99 additions and 0 deletions
				
			
		
							
								
								
									
										52
									
								
								test/inlinetest.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								test/inlinetest.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,52 @@
 | 
			
		|||
module InlineTest
 | 
			
		||||
  def loadtest(libname)
 | 
			
		||||
    in_critical do
 | 
			
		||||
      in_progname(libpath(libname)) do
 | 
			
		||||
	Kernel.load(libname)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
  module_function :loadtest
 | 
			
		||||
 | 
			
		||||
  def loadtest__END__part(libname)
 | 
			
		||||
    program = File.open(libpath(libname)) { |f| f.read }
 | 
			
		||||
    mainpart, endpart = program.split(/^__END__$/)
 | 
			
		||||
    if endpart.nil?
 | 
			
		||||
      raise RuntimeError.new("No __END__ part in the library '#{filename}'")
 | 
			
		||||
    end
 | 
			
		||||
    require(libname)
 | 
			
		||||
    eval(endpart)
 | 
			
		||||
  end
 | 
			
		||||
  module_function :loadtest__END__part
 | 
			
		||||
 | 
			
		||||
  def self.in_critical
 | 
			
		||||
    th_criticality = Thread.critical
 | 
			
		||||
    Thread.critical = true
 | 
			
		||||
    begin
 | 
			
		||||
      yield
 | 
			
		||||
    ensure
 | 
			
		||||
      Thread.critical = th_criticality
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.in_progname(progname)
 | 
			
		||||
    progname_backup = $0.dup
 | 
			
		||||
    $0.replace(progname)
 | 
			
		||||
    begin
 | 
			
		||||
      yield
 | 
			
		||||
    ensure
 | 
			
		||||
      $0.replace(progname_backup)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.libpath(libname)
 | 
			
		||||
    libpath = nil
 | 
			
		||||
    $:.find do |path|
 | 
			
		||||
      File.file?(testname = File.join(path, libname)) && libpath = testname
 | 
			
		||||
    end
 | 
			
		||||
    if libpath.nil?
 | 
			
		||||
      raise RuntimeError.new("'#{libname}' not found")
 | 
			
		||||
    end
 | 
			
		||||
    libpath
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue