mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 ad42685bf4
			
		
	
	
		ad42685bf4
		
	
	
	
	
		
			
			not opened.
* ext/syslog/test.rb: Syslog.{ident,options,facility,mask} should
  all return nil when not opened.
* ext/syslog/test.rb: Change back the output format of inspect().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
	
			
		
			
				
	
	
		
			164 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| #!/usr/bin/env ruby
 | |
| # $RoughId: test.rb,v 1.9 2002/02/25 08:20:14 knu Exp $
 | |
| # $Id$
 | |
| 
 | |
| # Please only run this test on machines reasonable for testing.
 | |
| # If in doubt, ask your admin.
 | |
| 
 | |
| require 'test/unit'
 | |
| 
 | |
| # Prepend current directory to load path for testing.
 | |
| $:.unshift('.')
 | |
| 
 | |
| require 'syslog'
 | |
| 
 | |
| class TestSyslog < Test::Unit::TestCase
 | |
|   def test_new
 | |
|     assert_raises(NoMethodError) {
 | |
|       Syslog.new
 | |
|     }
 | |
|   end
 | |
| 
 | |
|   def test_instance
 | |
|     sl1 = Syslog.instance
 | |
|     sl2 = Syslog.open
 | |
|     sl3 = Syslog.instance
 | |
| 
 | |
|     assert_equal(Syslog, sl1)
 | |
|     assert_equal(Syslog, sl2)
 | |
|     assert_equal(Syslog, sl3)
 | |
|   ensure
 | |
|     Syslog.close if Syslog.opened?
 | |
|   end
 | |
| 
 | |
|   def test_open
 | |
|     # default parameters
 | |
|     Syslog.open
 | |
| 
 | |
|     assert_equal($0, Syslog.ident)
 | |
|     assert_equal(Syslog::LOG_PID | Syslog::LOG_CONS, Syslog.options)
 | |
|     assert_equal(Syslog::LOG_USER, Syslog.facility)
 | |
| 
 | |
|     # open without close
 | |
|     assert_raises(RuntimeError) {
 | |
|       Syslog.open
 | |
|     }
 | |
| 
 | |
|     Syslog.close
 | |
| 
 | |
|     # given parameters
 | |
|     Syslog.open("foo", Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog::LOG_DAEMON) 
 | |
| 
 | |
|     assert_equal('foo', Syslog.ident)
 | |
|     assert_equal(Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog.options)
 | |
|     assert_equal(Syslog::LOG_DAEMON, Syslog.facility)
 | |
| 
 | |
|     Syslog.close
 | |
| 
 | |
|     # default parameters again (after close)
 | |
|     Syslog.open
 | |
|     Syslog.close
 | |
| 
 | |
|     assert_equal(nil, Syslog.ident)
 | |
|     assert_equal(nil, Syslog.options)
 | |
|     assert_equal(nil, Syslog.facility)
 | |
| 
 | |
|     # block
 | |
|     param = nil
 | |
|     Syslog.open { |param| }
 | |
|     assert_equal(Syslog, param)
 | |
|   ensure
 | |
|     Syslog.close if Syslog.opened?
 | |
|   end
 | |
| 
 | |
|   def test_opened?
 | |
|     assert_equal(false, Syslog.opened?)
 | |
| 
 | |
|     Syslog.open
 | |
|     assert_equal(true, Syslog.opened?)
 | |
| 
 | |
|     Syslog.close
 | |
|     assert_equal(false, Syslog.opened?)
 | |
| 
 | |
|     Syslog.open {
 | |
|       assert_equal(true, Syslog.opened?)
 | |
|     }
 | |
| 
 | |
|     assert_equal(false, Syslog.opened?)
 | |
|   end
 | |
| 
 | |
|   def test_close
 | |
|     assert_raises(RuntimeError) {
 | |
|       Syslog.close
 | |
|     }
 | |
|   end
 | |
| 
 | |
|   def test_mask
 | |
|     assert_equal(nil, Syslog.mask)
 | |
| 
 | |
|     Syslog.open
 | |
| 
 | |
|     orig = Syslog.mask
 | |
| 
 | |
|     Syslog.mask = Syslog.LOG_UPTO(Syslog::LOG_ERR)
 | |
|     assert_equal(Syslog.LOG_UPTO(Syslog::LOG_ERR), Syslog.mask)
 | |
| 
 | |
|     Syslog.mask = Syslog.LOG_MASK(Syslog::LOG_CRIT)
 | |
|     assert_equal(Syslog.LOG_MASK(Syslog::LOG_CRIT), Syslog.mask)
 | |
| 
 | |
|     Syslog.mask = orig
 | |
|   ensure
 | |
|     Syslog.close if Syslog.opened?
 | |
|   end
 | |
| 
 | |
|   def test_log
 | |
|     stderr = IO::pipe
 | |
| 
 | |
|     pid = fork {
 | |
|       stderr[0].close
 | |
|       STDERR.reopen(stderr[1])
 | |
|       stderr[1].close
 | |
| 
 | |
|       options = Syslog::LOG_PERROR | Syslog::LOG_NDELAY
 | |
| 
 | |
|       Syslog.open("syslog_test", options) { |sl|
 | |
| 	sl.log(Syslog::LOG_NOTICE, "test1 - hello, %s!", "world")
 | |
| 	sl.notice("test1 - hello, %s!", "world")
 | |
|       }
 | |
| 
 | |
|       Syslog.open("syslog_test", options | Syslog::LOG_PID) { |sl|
 | |
| 	sl.log(Syslog::LOG_CRIT, "test2 - pid")
 | |
| 	sl.crit("test2 - pid")
 | |
|       }
 | |
|       exit!
 | |
|     }
 | |
| 
 | |
|     stderr[1].close
 | |
|     Process.waitpid(pid)
 | |
| 
 | |
|     # LOG_PERROR is not yet implemented on Cygwin.
 | |
|     return if RUBY_PLATFORM =~ /cygwin/
 | |
| 
 | |
|     2.times {
 | |
|       assert_equal("syslog_test: test1 - hello, world!\n", stderr[0].gets)
 | |
|     }
 | |
| 
 | |
|     2.times {
 | |
|       assert_equal(format("syslog_test[%d]: test2 - pid\n", pid), stderr[0].gets)
 | |
|     }
 | |
|   end
 | |
| 
 | |
|   def test_inspect
 | |
|     Syslog.open { |sl|
 | |
|       assert_equal(format('<#%s: opened=true, ident="%s", options=%d, facility=%d, mask=%d>',
 | |
| 			  Syslog,
 | |
| 			  sl.ident,
 | |
| 			  sl.options,
 | |
| 			  sl.facility,
 | |
| 			  sl.mask),
 | |
| 		   sl.inspect)
 | |
|     }
 | |
| 
 | |
|     assert_equal(format('<#%s: opened=false>', Syslog), Syslog.inspect)
 | |
|   end
 | |
| end
 |