/source/ruby-enterprise-1.8.7-2011.01/source/ext/syslog/test.rb
Ruby | 164 lines | 112 code | 40 blank | 12 comment | 4 complexity | 343472cbf47ad01cff4231e3d2dc24e3 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause
- #!/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