summaryrefslogtreecommitdiff
path: root/test/logger
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-21 07:04:25 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-21 07:04:25 +0000
commite00bcd1df330bc70af8fa3259be074e861873476 (patch)
treeeaf093f1b9fded28f4e04722d245d7af7398245f /test/logger
parent3a1d472fd6999f11378ec13b812e526b8953ef01 (diff)
test/logger: split
* test/logger: split for each test cases. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/logger')
-rw-r--r--test/logger/test_application.rb54
-rw-r--r--test/logger/test_logdevice.rb342
-rw-r--r--test/logger/test_logger.rb403
-rw-r--r--test/logger/test_severity.rb15
4 files changed, 411 insertions, 403 deletions
diff --git a/test/logger/test_application.rb b/test/logger/test_application.rb
new file mode 100644
index 0000000000..a56308b2b2
--- /dev/null
+++ b/test/logger/test_application.rb
@@ -0,0 +1,54 @@
+# coding: US-ASCII
+require 'test/unit'
+require 'logger'
+require 'tempfile'
+
+class TestLoggerApplication < Test::Unit::TestCase
+ def setup
+ @app = Logger::Application.new('appname')
+ @tempfile = Tempfile.new("logger")
+ @tempfile.close
+ @filename = @tempfile.path
+ File.unlink(@filename)
+ end
+
+ def teardown
+ @tempfile.close(true)
+ end
+
+ def test_initialize
+ app = Logger::Application.new('appname')
+ assert_equal('appname', app.appname)
+ end
+
+ def test_start
+ @app.set_log(@filename)
+ begin
+ @app.level = Logger::UNKNOWN
+ @app.start # logs FATAL log
+ assert_equal(1, File.read(@filename).split(/\n/).size)
+ ensure
+ @app.logger.close
+ end
+ end
+
+ def test_logger
+ @app.level = Logger::WARN
+ @app.set_log(@filename)
+ begin
+ assert_equal(Logger::WARN, @app.logger.level)
+ ensure
+ @app.logger.close
+ end
+ @app.logger = logger = Logger.new(STDOUT)
+ assert_equal(logger, @app.logger)
+ assert_equal(Logger::WARN, @app.logger.level)
+ @app.log = @filename
+ begin
+ assert(logger != @app.logger)
+ assert_equal(Logger::WARN, @app.logger.level)
+ ensure
+ @app.logger.close
+ end
+ end
+end
diff --git a/test/logger/test_logdevice.rb b/test/logger/test_logdevice.rb
new file mode 100644
index 0000000000..7999135dd9
--- /dev/null
+++ b/test/logger/test_logdevice.rb
@@ -0,0 +1,342 @@
+# coding: US-ASCII
+require 'test/unit'
+require 'logger'
+require 'tempfile'
+require 'tmpdir'
+require_relative '../ruby/envutil'
+
+class TestLogDevice < Test::Unit::TestCase
+ class LogExcnRaiser
+ def write(*arg)
+ raise 'disk is full'
+ end
+
+ def close
+ end
+
+ def stat
+ Object.new
+ end
+ end
+
+ def setup
+ @tempfile = Tempfile.new("logger")
+ @tempfile.close
+ @filename = @tempfile.path
+ File.unlink(@filename)
+ end
+
+ def teardown
+ @tempfile.close(true)
+ end
+
+ def d(log, opt = {})
+ Logger::LogDevice.new(log, opt)
+ end
+
+ def test_initialize
+ logdev = d(STDERR)
+ assert_equal(STDERR, logdev.dev)
+ assert_nil(logdev.filename)
+ assert_raises(TypeError) do
+ d(nil)
+ end
+ #
+ logdev = d(@filename)
+ begin
+ assert(File.exist?(@filename))
+ assert(logdev.dev.sync)
+ assert_equal(@filename, logdev.filename)
+ logdev.write('hello')
+ ensure
+ logdev.close
+ end
+ # create logfile whitch is already exist.
+ logdev = d(@filename)
+ begin
+ logdev.write('world')
+ logfile = File.read(@filename)
+ assert_equal(2, logfile.split(/\n/).size)
+ assert_match(/^helloworld$/, logfile)
+ ensure
+ logdev.close
+ end
+ end
+
+ def test_write
+ r, w = IO.pipe
+ logdev = d(w)
+ logdev.write("msg2\n\n")
+ IO.select([r], nil, nil, 0.1)
+ w.close
+ msg = r.read
+ r.close
+ assert_equal("msg2\n\n", msg)
+ #
+ logdev = d(LogExcnRaiser.new)
+ class << (stderr = '')
+ alias write <<
+ end
+ $stderr, stderr = stderr, $stderr
+ begin
+ assert_nothing_raised do
+ logdev.write('hello')
+ end
+ ensure
+ logdev.close
+ $stderr, stderr = stderr, $stderr
+ end
+ assert_equal "log writing failed. disk is full\n", stderr
+ end
+
+ def test_close
+ r, w = IO.pipe
+ logdev = d(w)
+ logdev.write("msg2\n\n")
+ IO.select([r], nil, nil, 0.1)
+ assert(!w.closed?)
+ logdev.close
+ assert(w.closed?)
+ r.close
+ end
+
+ def test_shifting_size
+ tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_1.log'])
+ logfile = tmpfile.path
+ logfile0 = logfile + '.0'
+ logfile1 = logfile + '.1'
+ logfile2 = logfile + '.2'
+ logfile3 = logfile + '.3'
+ tmpfile.close(true)
+ File.unlink(logfile) if File.exist?(logfile)
+ File.unlink(logfile0) if File.exist?(logfile0)
+ File.unlink(logfile1) if File.exist?(logfile1)
+ File.unlink(logfile2) if File.exist?(logfile2)
+ logger = Logger.new(logfile, 4, 100)
+ logger.error("0" * 15)
+ assert(File.exist?(logfile))
+ assert(!File.exist?(logfile0))
+ logger.error("0" * 15)
+ assert(File.exist?(logfile0))
+ assert(!File.exist?(logfile1))
+ logger.error("0" * 15)
+ assert(File.exist?(logfile1))
+ assert(!File.exist?(logfile2))
+ logger.error("0" * 15)
+ assert(File.exist?(logfile2))
+ assert(!File.exist?(logfile3))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile3))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile3))
+ logger.close
+ File.unlink(logfile)
+ File.unlink(logfile0)
+ File.unlink(logfile1)
+ File.unlink(logfile2)
+
+ tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_2.log'])
+ logfile = tmpfile.path
+ logfile0 = logfile + '.0'
+ logfile1 = logfile + '.1'
+ logfile2 = logfile + '.2'
+ logfile3 = logfile + '.3'
+ tmpfile.close(true)
+ logger = Logger.new(logfile, 4, 150)
+ logger.error("0" * 15)
+ assert(File.exist?(logfile))
+ assert(!File.exist?(logfile0))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile0))
+ logger.error("0" * 15)
+ assert(File.exist?(logfile0))
+ assert(!File.exist?(logfile1))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile1))
+ logger.error("0" * 15)
+ assert(File.exist?(logfile1))
+ assert(!File.exist?(logfile2))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile2))
+ logger.error("0" * 15)
+ assert(File.exist?(logfile2))
+ assert(!File.exist?(logfile3))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile3))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile3))
+ logger.error("0" * 15)
+ assert(!File.exist?(logfile3))
+ logger.close
+ File.unlink(logfile)
+ File.unlink(logfile0)
+ 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
+ logger.close if logger
+ [filename1, filename2, filename3].each do |filename|
+ File.unlink(filename) if File.exist?(filename)
+ end
+ end
+ end
+
+ def test_shifting_size_in_multiprocess
+ tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_1.log'])
+ logfile = tmpfile.path
+ logfile0 = logfile + '.0'
+ logfile1 = logfile + '.1'
+ logfile2 = logfile + '.2'
+ tmpfile.close(true)
+ File.unlink(logfile) if File.exist?(logfile)
+ File.unlink(logfile0) if File.exist?(logfile0)
+ File.unlink(logfile1) if File.exist?(logfile1)
+ File.unlink(logfile2) if File.exist?(logfile2)
+ begin
+ stderr = run_children(2, [logfile], <<-'END')
+ logger = Logger.new(ARGV[0], 4, 10)
+ 10.times do
+ logger.info '0' * 15
+ end
+ END
+ assert_no_match(/log shifting failed/, stderr)
+ assert_no_match(/log writing failed/, stderr)
+ assert_no_match(/log rotation inter-process lock failed/, stderr)
+ ensure
+ File.unlink(logfile) if File.exist?(logfile)
+ File.unlink(logfile0) if File.exist?(logfile0)
+ File.unlink(logfile1) if File.exist?(logfile1)
+ File.unlink(logfile2) if File.exist?(logfile2)
+ end
+ end
+
+ def test_shifting_age_in_multiprocess
+ yyyymmdd = Time.now.strftime("%Y%m%d")
+ begin
+ stderr = run_children(2, [@filename], <<-'END')
+ logger = Logger.new(ARGV[0], 'now')
+ 10.times do
+ logger.info '0' * 15
+ end
+ END
+ assert_no_match(/log shifting failed/, stderr)
+ assert_no_match(/log writing failed/, stderr)
+ assert_no_match(/log rotation inter-process lock failed/, stderr)
+ ensure
+ Dir.glob("#{@filename}.#{yyyymmdd}{,.[1-9]*}") do |filename|
+ File.unlink(filename) if File.exist?(filename)
+ end
+ end
+ end
+
+ def test_open_logfile_in_multiprocess
+ tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_1.log'])
+ logfile = tmpfile.path
+ tmpfile.close(true)
+ begin
+ 20.times do
+ run_children(2, [logfile], <<-'END')
+ logfile = ARGV[0]
+ logdev = Logger::LogDevice.new(logfile)
+ logdev.send(:open_logfile, logfile)
+ END
+ assert_equal(1, File.readlines(logfile).grep(/# Logfile created on/).size)
+ File.unlink(logfile)
+ end
+ ensure
+ File.unlink(logfile) if File.exist?(logfile)
+ end
+ end
+
+ def test_shifting_size_not_rotate_too_much
+ d(@filename).__send__(:add_log_header, @tempfile)
+ header_size = @tempfile.size
+ message = "*" * 99 + "\n"
+ shift_size = header_size + message.size * 3 - 1
+ opt = {shift_age: 1, shift_size: shift_size}
+
+ Dir.mktmpdir do |tmpdir|
+ begin
+ log = File.join(tmpdir, "log")
+ logdev1 = d(log, opt)
+ logdev2 = d(log, opt)
+
+ assert_file.identical?(log, logdev1.dev)
+ assert_file.identical?(log, logdev2.dev)
+
+ 3.times{logdev1.write(message)}
+ assert_file.identical?(log, logdev1.dev)
+ assert_file.identical?(log, logdev2.dev)
+
+ logdev1.write(message)
+ assert_file.identical?(log, logdev1.dev)
+ assert_file.identical?(log + ".0", logdev2.dev)
+
+ logdev2.write(message)
+ assert_file.identical?(log, logdev1.dev)
+ assert_file.identical?(log, logdev2.dev)
+
+ logdev1.write(message)
+ assert_file.identical?(log, logdev1.dev)
+ assert_file.identical?(log, logdev2.dev)
+ ensure
+ logdev1.close if logdev1
+ logdev2.close if logdev2
+ end
+ end
+ end unless /mswin|mingw/ =~ RUBY_PLATFORM
+
+ private
+
+ def run_children(n, args, src)
+ r, w = IO.pipe
+ [w, *(1..n).map do
+ f = IO.popen([EnvUtil.rubybin, *%w[--disable=gems -rlogger -], *args], "w", err: w)
+ f.puts(src)
+ f
+ end].each(&:close)
+ stderr = r.read
+ r.close
+ stderr
+ end
+end
diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb
index a202b762ef..dc1a155b49 100644
--- a/test/logger/test_logger.rb
+++ b/test/logger/test_logger.rb
@@ -2,22 +2,6 @@
require 'test/unit'
require 'logger'
require 'tempfile'
-require 'tmpdir'
-require_relative '../ruby/envutil'
-
-
-class TestLoggerSeverity < Test::Unit::TestCase
- def test_enum
- logger_levels = Logger.constants
- levels = ["WARN", "UNKNOWN", "INFO", "FATAL", "DEBUG", "ERROR"]
- Logger::Severity.constants.each do |level|
- assert(levels.include?(level.to_s))
- assert(logger_levels.include?(level))
- end
- assert_equal(levels.size, Logger::Severity.constants.size)
- end
-end
-
class TestLogger < Test::Unit::TestCase
include Logger::Severity
@@ -258,390 +242,3 @@ class TestLogger < Test::Unit::TestCase
assert_equal("msg2\n\n", msg)
end
end
-
-class TestLogDevice < Test::Unit::TestCase
- class LogExcnRaiser
- def write(*arg)
- raise 'disk is full'
- end
-
- def close
- end
-
- def stat
- Object.new
- end
- end
-
- def setup
- @tempfile = Tempfile.new("logger")
- @tempfile.close
- @filename = @tempfile.path
- File.unlink(@filename)
- end
-
- def teardown
- @tempfile.close(true)
- end
-
- def d(log, opt = {})
- Logger::LogDevice.new(log, opt)
- end
-
- def test_initialize
- logdev = d(STDERR)
- assert_equal(STDERR, logdev.dev)
- assert_nil(logdev.filename)
- assert_raises(TypeError) do
- d(nil)
- end
- #
- logdev = d(@filename)
- begin
- assert(File.exist?(@filename))
- assert(logdev.dev.sync)
- assert_equal(@filename, logdev.filename)
- logdev.write('hello')
- ensure
- logdev.close
- end
- # create logfile whitch is already exist.
- logdev = d(@filename)
- begin
- logdev.write('world')
- logfile = File.read(@filename)
- assert_equal(2, logfile.split(/\n/).size)
- assert_match(/^helloworld$/, logfile)
- ensure
- logdev.close
- end
- end
-
- def test_write
- r, w = IO.pipe
- logdev = d(w)
- logdev.write("msg2\n\n")
- IO.select([r], nil, nil, 0.1)
- w.close
- msg = r.read
- r.close
- assert_equal("msg2\n\n", msg)
- #
- logdev = d(LogExcnRaiser.new)
- class << (stderr = '')
- alias write <<
- end
- $stderr, stderr = stderr, $stderr
- begin
- assert_nothing_raised do
- logdev.write('hello')
- end
- ensure
- logdev.close
- $stderr, stderr = stderr, $stderr
- end
- assert_equal "log writing failed. disk is full\n", stderr
- end
-
- def test_close
- r, w = IO.pipe
- logdev = d(w)
- logdev.write("msg2\n\n")
- IO.select([r], nil, nil, 0.1)
- assert(!w.closed?)
- logdev.close
- assert(w.closed?)
- r.close
- end
-
- def test_shifting_size
- tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_1.log'])
- logfile = tmpfile.path
- logfile0 = logfile + '.0'
- logfile1 = logfile + '.1'
- logfile2 = logfile + '.2'
- logfile3 = logfile + '.3'
- tmpfile.close(true)
- File.unlink(logfile) if File.exist?(logfile)
- File.unlink(logfile0) if File.exist?(logfile0)
- File.unlink(logfile1) if File.exist?(logfile1)
- File.unlink(logfile2) if File.exist?(logfile2)
- logger = Logger.new(logfile, 4, 100)
- logger.error("0" * 15)
- assert(File.exist?(logfile))
- assert(!File.exist?(logfile0))
- logger.error("0" * 15)
- assert(File.exist?(logfile0))
- assert(!File.exist?(logfile1))
- logger.error("0" * 15)
- assert(File.exist?(logfile1))
- assert(!File.exist?(logfile2))
- logger.error("0" * 15)
- assert(File.exist?(logfile2))
- assert(!File.exist?(logfile3))
- logger.error("0" * 15)
- assert(!File.exist?(logfile3))
- logger.error("0" * 15)
- assert(!File.exist?(logfile3))
- logger.close
- File.unlink(logfile)
- File.unlink(logfile0)
- File.unlink(logfile1)
- File.unlink(logfile2)
-
- tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_2.log'])
- logfile = tmpfile.path
- logfile0 = logfile + '.0'
- logfile1 = logfile + '.1'
- logfile2 = logfile + '.2'
- logfile3 = logfile + '.3'
- tmpfile.close(true)
- logger = Logger.new(logfile, 4, 150)
- logger.error("0" * 15)
- assert(File.exist?(logfile))
- assert(!File.exist?(logfile0))
- logger.error("0" * 15)
- assert(!File.exist?(logfile0))
- logger.error("0" * 15)
- assert(File.exist?(logfile0))
- assert(!File.exist?(logfile1))
- logger.error("0" * 15)
- assert(!File.exist?(logfile1))
- logger.error("0" * 15)
- assert(File.exist?(logfile1))
- assert(!File.exist?(logfile2))
- logger.error("0" * 15)
- assert(!File.exist?(logfile2))
- logger.error("0" * 15)
- assert(File.exist?(logfile2))
- assert(!File.exist?(logfile3))
- logger.error("0" * 15)
- assert(!File.exist?(logfile3))
- logger.error("0" * 15)
- assert(!File.exist?(logfile3))
- logger.error("0" * 15)
- assert(!File.exist?(logfile3))
- logger.close
- File.unlink(logfile)
- File.unlink(logfile0)
- 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
- logger.close if logger
- [filename1, filename2, filename3].each do |filename|
- File.unlink(filename) if File.exist?(filename)
- end
- end
- end
-
- def test_shifting_size_in_multiprocess
- tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_1.log'])
- logfile = tmpfile.path
- logfile0 = logfile + '.0'
- logfile1 = logfile + '.1'
- logfile2 = logfile + '.2'
- tmpfile.close(true)
- File.unlink(logfile) if File.exist?(logfile)
- File.unlink(logfile0) if File.exist?(logfile0)
- File.unlink(logfile1) if File.exist?(logfile1)
- File.unlink(logfile2) if File.exist?(logfile2)
- begin
- stderr = run_children(2, [logfile], <<-'END')
- logger = Logger.new(ARGV[0], 4, 10)
- 10.times do
- logger.info '0' * 15
- end
- END
- assert_no_match(/log shifting failed/, stderr)
- assert_no_match(/log writing failed/, stderr)
- assert_no_match(/log rotation inter-process lock failed/, stderr)
- ensure
- File.unlink(logfile) if File.exist?(logfile)
- File.unlink(logfile0) if File.exist?(logfile0)
- File.unlink(logfile1) if File.exist?(logfile1)
- File.unlink(logfile2) if File.exist?(logfile2)
- end
- end
-
- def test_shifting_age_in_multiprocess
- yyyymmdd = Time.now.strftime("%Y%m%d")
- begin
- stderr = run_children(2, [@filename], <<-'END')
- logger = Logger.new(ARGV[0], 'now')
- 10.times do
- logger.info '0' * 15
- end
- END
- assert_no_match(/log shifting failed/, stderr)
- assert_no_match(/log writing failed/, stderr)
- assert_no_match(/log rotation inter-process lock failed/, stderr)
- ensure
- Dir.glob("#{@filename}.#{yyyymmdd}{,.[1-9]*}") do |filename|
- File.unlink(filename) if File.exist?(filename)
- end
- end
- end
-
- def test_open_logfile_in_multiprocess
- tmpfile = Tempfile.new([File.basename(__FILE__, '.*'), '_1.log'])
- logfile = tmpfile.path
- tmpfile.close(true)
- begin
- 20.times do
- run_children(2, [logfile], <<-'END')
- logfile = ARGV[0]
- logdev = Logger::LogDevice.new(logfile)
- logdev.send(:open_logfile, logfile)
- END
- assert_equal(1, File.readlines(logfile).grep(/# Logfile created on/).size)
- File.unlink(logfile)
- end
- ensure
- File.unlink(logfile) if File.exist?(logfile)
- end
- end
-
- def test_shifting_size_not_rotate_too_much
- d(@filename).__send__(:add_log_header, @tempfile)
- header_size = @tempfile.size
- message = "*" * 99 + "\n"
- shift_size = header_size + message.size * 3 - 1
- opt = {shift_age: 1, shift_size: shift_size}
-
- Dir.mktmpdir do |tmpdir|
- begin
- log = File.join(tmpdir, "log")
- logdev1 = d(log, opt)
- logdev2 = d(log, opt)
-
- assert_file.identical?(log, logdev1.dev)
- assert_file.identical?(log, logdev2.dev)
-
- 3.times{logdev1.write(message)}
- assert_file.identical?(log, logdev1.dev)
- assert_file.identical?(log, logdev2.dev)
-
- logdev1.write(message)
- assert_file.identical?(log, logdev1.dev)
- assert_file.identical?(log + ".0", logdev2.dev)
-
- logdev2.write(message)
- assert_file.identical?(log, logdev1.dev)
- assert_file.identical?(log, logdev2.dev)
-
- logdev1.write(message)
- assert_file.identical?(log, logdev1.dev)
- assert_file.identical?(log, logdev2.dev)
- ensure
- logdev1.close if logdev1
- logdev2.close if logdev2
- end
- end
- end unless /mswin|mingw/ =~ RUBY_PLATFORM
-
- private
-
- def run_children(n, args, src)
- r, w = IO.pipe
- [w, *(1..n).map do
- f = IO.popen([EnvUtil.rubybin, *%w[--disable=gems -rlogger -], *args], "w", err: w)
- f.puts(src)
- f
- end].each(&:close)
- stderr = r.read
- r.close
- stderr
- end
-end
-
-
-class TestLoggerApplication < Test::Unit::TestCase
- def setup
- @app = Logger::Application.new('appname')
- @tempfile = Tempfile.new("logger")
- @tempfile.close
- @filename = @tempfile.path
- File.unlink(@filename)
- end
-
- def teardown
- @tempfile.close(true)
- end
-
- def test_initialize
- app = Logger::Application.new('appname')
- assert_equal('appname', app.appname)
- end
-
- def test_start
- @app.set_log(@filename)
- begin
- @app.level = Logger::UNKNOWN
- @app.start # logs FATAL log
- assert_equal(1, File.read(@filename).split(/\n/).size)
- ensure
- @app.logger.close
- end
- end
-
- def test_logger
- @app.level = Logger::WARN
- @app.set_log(@filename)
- begin
- assert_equal(Logger::WARN, @app.logger.level)
- ensure
- @app.logger.close
- end
- @app.logger = logger = Logger.new(STDOUT)
- assert_equal(logger, @app.logger)
- assert_equal(Logger::WARN, @app.logger.level)
- @app.log = @filename
- begin
- assert(logger != @app.logger)
- assert_equal(Logger::WARN, @app.logger.level)
- ensure
- @app.logger.close
- end
- end
-end
diff --git a/test/logger/test_severity.rb b/test/logger/test_severity.rb
new file mode 100644
index 0000000000..045461caa2
--- /dev/null
+++ b/test/logger/test_severity.rb
@@ -0,0 +1,15 @@
+# coding: US-ASCII
+require 'test/unit'
+require 'logger'
+
+class TestLoggerSeverity < Test::Unit::TestCase
+ def test_enum
+ logger_levels = Logger.constants
+ levels = ["WARN", "UNKNOWN", "INFO", "FATAL", "DEBUG", "ERROR"]
+ Logger::Severity.constants.each do |level|
+ assert(levels.include?(level.to_s))
+ assert(logger_levels.include?(level))
+ end
+ assert_equal(levels.size, Logger::Severity.constants.size)
+ end
+end