summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-11-24 14:55:19 +0000
committernahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-11-24 14:55:19 +0000
commit652b6f196a70eb4579f3765dce64a69c92fa92e4 (patch)
treea8ea378974d3a6dfecba0e22698a3731271bf453 /test
parentc1221d04f03b3767387032b2772b65a9f5fa7088 (diff)
* lib/logger.rb: imported upstream version (logger/1.2.7)
* do not raise an exception even if log writing failed. * do not raise ShiftingError if an aged file already exists. (no ShiftingError will be raised from 1.2.7, just warn() instead) * test/logger/test_logger.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@20345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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