summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/logger/test_logger.rb142
1 files changed, 133 insertions, 9 deletions
diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb
index 5969854976..bb9f997666 100644
--- a/test/logger/test_logger.rb
+++ b/test/logger/test_logger.rb
@@ -21,10 +21,13 @@ class TestLogger < Test::Unit::TestCase
def setup
@logger = Logger.new(nil)
+ @filename = __FILE__ + ".#{$$}"
end
- def test_const_progname
- assert %r!\Alogger\.rb/\S+\z! === Logger::ProgName
+ def teardown
+ unless $DEBUG
+ File.unlink(@filename) if File.exist?(@filename)
+ end
end
class Log
@@ -262,8 +265,31 @@ class TestLogger < Test::Unit::TestCase
end
class TestLogDevice < Test::Unit::TestCase
- def d(log)
- Logger::LogDevice.new(log)
+ class LogExcnRaiser
+ def write(*arg)
+ raise 'disk is full'
+ end
+
+ def close
+ end
+
+ def stat
+ Object.new
+ end
+ end
+
+ def setup
+ @filename = __FILE__ + ".#{$$}"
+ end
+
+ def teardown
+ unless $DEBUG
+ File.unlink(@filename) if File.exist?(@filename)
+ end
+ end
+
+ def d(log, opt = {})
+ Logger::LogDevice.new(log, opt)
end
def test_initialize
@@ -274,16 +300,21 @@ class TestLogDevice < Test::Unit::TestCase
d(nil)
end
#
- filename = __FILE__ + ".#{$$}"
+ logdev = d(@filename)
begin
- logdev = d(filename)
- assert(File.exist?(filename))
+ assert(File.exist?(@filename))
assert(logdev.dev.sync)
- assert_equal(filename, logdev.filename)
+ assert_equal(@filename, logdev.filename)
+ logdev.write('hello')
ensure
logdev.close
- File.unlink(filename)
end
+ # create logfile whitch is already exist.
+ logdev = d(@filename)
+ logdev.write('world')
+ logfile = File.read(@filename)
+ assert_equal(2, logfile.split(/\n/).size)
+ assert_match(/^helloworld$/, logfile)
end
def test_write
@@ -295,6 +326,15 @@ class TestLogDevice < Test::Unit::TestCase
msg = r.read
r.close
assert_equal("msg2\n\n", msg)
+ #
+ logdev = d(LogExcnRaiser.new)
+ begin
+ assert_nothing_raised do
+ logdev.write('hello')
+ end
+ ensure
+ logdev.close
+ end
end
def test_close
@@ -377,4 +417,88 @@ class TestLogDevice < Test::Unit::TestCase
File.unlink(logfile1)
File.unlink(logfile2)
end
+
+ def test_shifting_age_variants
+ logger = Logger.new(@filename, 'daily')
+ logger.info('daily')
+ logger.close
+ logger = Logger.new(@filename, 'weekly')
+ logger.info('weekly')
+ logger.close
+ logger = Logger.new(@filename, 'monthly')
+ logger.info('monthly')
+ logger.close
+ end
+
+ def test_shifting_age
+ # shift_age other than 'daily', 'weekly', and 'monthly' means 'everytime'
+ yyyymmdd = Time.now.strftime("%Y%m%d")
+ filename1 = @filename + ".#{yyyymmdd}"
+ filename2 = @filename + ".#{yyyymmdd}.1"
+ filename3 = @filename + ".#{yyyymmdd}.2"
+ begin
+ logger = Logger.new(@filename, 'now')
+ assert(File.exist?(@filename))
+ assert(!File.exist?(filename1))
+ assert(!File.exist?(filename2))
+ assert(!File.exist?(filename3))
+ logger.info("0" * 15)
+ assert(File.exist?(@filename))
+ assert(File.exist?(filename1))
+ assert(!File.exist?(filename2))
+ assert(!File.exist?(filename3))
+ logger.warn("0" * 15)
+ assert(File.exist?(@filename))
+ assert(File.exist?(filename1))
+ assert(File.exist?(filename2))
+ assert(!File.exist?(filename3))
+ logger.error("0" * 15)
+ assert(File.exist?(@filename))
+ assert(File.exist?(filename1))
+ assert(File.exist?(filename2))
+ assert(File.exist?(filename3))
+ ensure
+ [filename1, filename2, filename3].each do |filename|
+ File.unlink(filename) if File.exist?(filename)
+ end
+ end
+ end
+end
+
+
+class TestLoggerApplication < Test::Unit::TestCase
+ def setup
+ @app = Logger::Application.new('appname')
+ @filename = __FILE__ + ".#{$$}"
+ end
+
+ def teardown
+ unless $DEBUG
+ File.unlink(@filename) if File.exist?(@filename)
+ end
+ end
+
+ def test_initialize
+ app = Logger::Application.new('appname')
+ assert_equal('appname', app.appname)
+ end
+
+ def test_start
+ @app.set_log(@filename)
+ @app.level = Logger::UNKNOWN
+ @app.start # logs FATAL log
+ assert_equal(1, File.read(@filename).split(/\n/).size)
+ end
+
+ def test_logger
+ @app.level = Logger::WARN
+ @app.set_log(@filename)
+ assert_equal(Logger::WARN, @app.logger.level)
+ @app.logger = logger = Logger.new(STDOUT)
+ assert_equal(logger, @app.logger)
+ assert_equal(Logger::WARN, @app.logger.level)
+ @app.log = @filename
+ assert(logger != @app.logger)
+ assert_equal(Logger::WARN, @app.logger.level)
+ end
end