diff options
Diffstat (limited to 'test/logger')
-rw-r--r-- | test/logger/test_formatter.rb | 35 | ||||
-rw-r--r-- | test/logger/test_logdevice.rb | 3 | ||||
-rw-r--r-- | test/logger/test_logger.rb | 6 | ||||
-rw-r--r-- | test/logger/test_severity.rb | 32 |
4 files changed, 72 insertions, 4 deletions
diff --git a/test/logger/test_formatter.rb b/test/logger/test_formatter.rb new file mode 100644 index 0000000000..9465722991 --- /dev/null +++ b/test/logger/test_formatter.rb @@ -0,0 +1,35 @@ +# coding: US-ASCII +# frozen_string_literal: false +require 'logger' + +class TestFormatter < Test::Unit::TestCase + def test_call + severity = 'INFO' + time = Time.now + progname = 'ruby' + msg = 'This is a test' + formatter = Logger::Formatter.new + + result = formatter.call(severity, time, progname, msg) + time_matcher = /\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}/ + matcher = /#{severity[0..0]}, \[#{time_matcher} #\d+\] #{severity} -- #{progname}: #{msg}\n/ + + assert_match(matcher, result) + end + + class CustomFormatter < Logger::Formatter + def call(time) + format_datetime(time) + end + end + + def test_format_datetime + time = Time.now + formatter = CustomFormatter.new + + result = formatter.call(time) + matcher = /^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}\.\d{6}$/ + + assert_match(matcher, result) + end +end diff --git a/test/logger/test_logdevice.rb b/test/logger/test_logdevice.rb index d360fa2107..8f1c15542a 100644 --- a/test/logger/test_logdevice.rb +++ b/test/logger/test_logdevice.rb @@ -435,6 +435,7 @@ class TestLogDevice < Test::Unit::TestCase logdev1.write(message) assert_file.identical?(log, logdev1.dev) + # NOTE: below assertion fails in JRuby 9.3 and TruffleRuby assert_file.identical?(log + ".0", logdev2.dev) logdev2.write(message) @@ -451,7 +452,7 @@ class TestLogDevice < Test::Unit::TestCase end ensure logdev0.close - end unless /mswin|mingw|cygwin/ =~ RUBY_PLATFORM + end unless /mswin|mingw|cygwin/ =~ RbConfig::CONFIG['host_os'] def test_shifting_midnight Dir.mktmpdir do |tmpdir| diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb index 3281d17c7b..37d0f5862a 100644 --- a/test/logger/test_logger.rb +++ b/test/logger/test_logger.rb @@ -13,7 +13,7 @@ class TestLogger < Test::Unit::TestCase class Log attr_reader :label, :datetime, :pid, :severity, :progname, :msg def initialize(line) - /\A(\w+), \[([^#]*)#(\d+)\]\s+(\w+) -- (\w*): ([\x0-\xff]*)/ =~ line + /\A(\w+), \[([^#]*) #(\d+)\]\s+(\w+) -- (\w*): ([\x0-\xff]*)/ =~ line @label, @datetime, @pid, @severity, @progname, @msg = $1, $2, $3, $4, $5, $6 end end @@ -124,7 +124,7 @@ class TestLogger < Test::Unit::TestCase dummy = STDERR logger = Logger.new(dummy) log = log_add(logger, INFO, "foo") - assert_match(/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\s*\d+ $/, log.datetime) + assert_match(/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\s*\d+$/, log.datetime) logger.datetime_format = "%d%b%Y@%H:%M:%S" log = log_add(logger, INFO, "foo") assert_match(/^\d\d\w\w\w\d\d\d\d@\d\d:\d\d:\d\d$/, log.datetime) @@ -203,7 +203,7 @@ class TestLogger < Test::Unit::TestCase # default logger = Logger.new(STDERR) log = log_add(logger, INFO, "foo") - assert_match(/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\s*\d+ $/, log.datetime) + assert_match(/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d.\s*\d+$/, log.datetime) # config logger = Logger.new(STDERR, datetime_format: "%d%b%Y@%H:%M:%S") log = log_add(logger, INFO, "foo") diff --git a/test/logger/test_severity.rb b/test/logger/test_severity.rb index dad63472a6..e1069c8262 100644 --- a/test/logger/test_severity.rb +++ b/test/logger/test_severity.rb @@ -3,6 +3,8 @@ require 'logger' class TestLoggerSeverity < Test::Unit::TestCase + include Logger::Severity + def test_enum logger_levels = Logger.constants levels = ["WARN", "UNKNOWN", "INFO", "FATAL", "DEBUG", "ERROR"] @@ -23,4 +25,34 @@ class TestLoggerSeverity < Test::Unit::TestCase assert(logger.level) == Logger::Severity.const_get(level) end end + + def test_thread_local_level + logger = Logger.new(nil) + logger.level = INFO # default level + other = Logger.new(nil) + other.level = ERROR # default level + + assert_equal(other.level, ERROR) + logger.with_level(:WARN) do + assert_equal(other.level, ERROR) + assert_equal(logger.level, WARN) + + logger.with_level(DEBUG) do # verify reentrancy + assert_equal(logger.level, DEBUG) + + Thread.new do + assert_equal(logger.level, INFO) + logger.with_level(:WARN) do + assert_equal(other.level, ERROR) + assert_equal(logger.level, WARN) + end + assert_equal(logger.level, INFO) + end.join + + assert_equal(logger.level, DEBUG) + end + assert_equal(logger.level, WARN) + end + assert_equal(logger.level, INFO) + end end |