2001-11-26 15:00:40 +03:00
|
|
|
#!/usr/bin/env ruby
|
2002-02-25 15:13:30 +03:00
|
|
|
# $RoughId: test.rb,v 1.9 2002/02/25 08:20:14 knu Exp $
|
2001-11-26 15:00:40 +03:00
|
|
|
# $Id$
|
|
|
|
|
|
|
|
# Please only run this test on machines reasonable for testing.
|
|
|
|
# If in doubt, ask your admin.
|
|
|
|
|
2002-11-27 10:14:00 +03:00
|
|
|
require 'test/unit'
|
2001-11-26 15:00:40 +03:00
|
|
|
|
|
|
|
# Prepend current directory to load path for testing.
|
|
|
|
$:.unshift('.')
|
|
|
|
|
|
|
|
require 'syslog'
|
|
|
|
|
2002-11-27 10:14:00 +03:00
|
|
|
class TestSyslog < Test::Unit::TestCase
|
2002-02-25 15:13:30 +03:00
|
|
|
def test_new
|
2002-11-27 10:14:00 +03:00
|
|
|
assert_raises(NoMethodError) {
|
2001-11-26 15:00:40 +03:00
|
|
|
Syslog.new
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
def test_instance
|
2001-11-26 15:00:40 +03:00
|
|
|
sl1 = Syslog.instance
|
|
|
|
sl2 = Syslog.open
|
|
|
|
sl3 = Syslog.instance
|
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
assert_equal(Syslog, sl1)
|
|
|
|
assert_equal(Syslog, sl2)
|
|
|
|
assert_equal(Syslog, sl3)
|
2001-11-26 15:00:40 +03:00
|
|
|
ensure
|
2002-11-27 11:36:22 +03:00
|
|
|
Syslog.close if Syslog.opened?
|
2001-11-26 15:00:40 +03:00
|
|
|
end
|
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
def test_open
|
2001-11-26 15:00:40 +03:00
|
|
|
# default parameters
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.open
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
assert_equal($0, Syslog.ident)
|
|
|
|
assert_equal(Syslog::LOG_PID | Syslog::LOG_CONS, Syslog.options)
|
|
|
|
assert_equal(Syslog::LOG_USER, Syslog.facility)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
|
|
|
# open without close
|
2002-11-27 10:14:00 +03:00
|
|
|
assert_raises(RuntimeError) {
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.open
|
2001-11-26 15:00:40 +03:00
|
|
|
}
|
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.close
|
2001-11-26 15:00:40 +03:00
|
|
|
|
|
|
|
# given parameters
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.open("foo", Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog::LOG_DAEMON)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
assert_equal('foo', Syslog.ident)
|
|
|
|
assert_equal(Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog.options)
|
|
|
|
assert_equal(Syslog::LOG_DAEMON, Syslog.facility)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.close
|
2001-11-26 15:00:40 +03:00
|
|
|
|
|
|
|
# default parameters again (after close)
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.open
|
|
|
|
Syslog.close
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-11-27 11:36:22 +03:00
|
|
|
assert_equal(nil, Syslog.ident)
|
|
|
|
assert_equal(nil, Syslog.options)
|
|
|
|
assert_equal(nil, Syslog.facility)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
|
|
|
# block
|
|
|
|
param = nil
|
|
|
|
Syslog.open { |param| }
|
2002-02-25 15:13:30 +03:00
|
|
|
assert_equal(Syslog, param)
|
2001-11-26 15:00:40 +03:00
|
|
|
ensure
|
2002-11-27 11:36:22 +03:00
|
|
|
Syslog.close if Syslog.opened?
|
2001-11-26 15:00:40 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_opened?
|
2002-02-25 15:13:30 +03:00
|
|
|
assert_equal(false, Syslog.opened?)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.open
|
|
|
|
assert_equal(true, Syslog.opened?)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.close
|
|
|
|
assert_equal(false, Syslog.opened?)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.open {
|
|
|
|
assert_equal(true, Syslog.opened?)
|
2001-11-26 15:00:40 +03:00
|
|
|
}
|
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
assert_equal(false, Syslog.opened?)
|
2001-11-26 15:00:40 +03:00
|
|
|
end
|
|
|
|
|
2002-11-27 11:36:22 +03:00
|
|
|
def test_close
|
|
|
|
assert_raises(RuntimeError) {
|
|
|
|
Syslog.close
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
2001-11-26 15:00:40 +03:00
|
|
|
def test_mask
|
2002-11-27 11:36:22 +03:00
|
|
|
assert_equal(nil, Syslog.mask)
|
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.open
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
orig = Syslog.mask
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.mask = Syslog.LOG_UPTO(Syslog::LOG_ERR)
|
|
|
|
assert_equal(Syslog.LOG_UPTO(Syslog::LOG_ERR), Syslog.mask)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.mask = Syslog.LOG_MASK(Syslog::LOG_CRIT)
|
|
|
|
assert_equal(Syslog.LOG_MASK(Syslog::LOG_CRIT), Syslog.mask)
|
2001-11-26 15:00:40 +03:00
|
|
|
|
2002-02-25 15:13:30 +03:00
|
|
|
Syslog.mask = orig
|
2001-11-26 15:00:40 +03:00
|
|
|
ensure
|
2002-11-27 11:36:22 +03:00
|
|
|
Syslog.close if Syslog.opened?
|
2001-11-26 15:00:40 +03:00
|
|
|
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|
|
2002-11-27 11:36:22 +03:00
|
|
|
assert_equal(format('<#%s: opened=true, ident="%s", options=%d, facility=%d, mask=%d>',
|
2002-11-27 10:14:00 +03:00
|
|
|
Syslog,
|
|
|
|
sl.ident,
|
|
|
|
sl.options,
|
|
|
|
sl.facility,
|
2002-11-27 11:36:22 +03:00
|
|
|
sl.mask),
|
2001-11-26 15:00:40 +03:00
|
|
|
sl.inspect)
|
|
|
|
}
|
2002-11-27 11:36:22 +03:00
|
|
|
|
|
|
|
assert_equal(format('<#%s: opened=false>', Syslog), Syslog.inspect)
|
2001-11-26 15:00:40 +03:00
|
|
|
end
|
|
|
|
end
|