diff options
Diffstat (limited to 'test/logger')
-rw-r--r-- | test/logger/helper.rb | 13 | ||||
-rw-r--r-- | test/logger/test_formatter.rb | 35 | ||||
-rw-r--r-- | test/logger/test_logdevice.rb | 5 | ||||
-rw-r--r-- | test/logger/test_logger.rb | 8 | ||||
-rw-r--r-- | test/logger/test_logperiod.rb | 2 | ||||
-rw-r--r-- | test/logger/test_severity.rb | 34 |
6 files changed, 76 insertions, 21 deletions
diff --git a/test/logger/helper.rb b/test/logger/helper.rb deleted file mode 100644 index 9eaeb205b0..0000000000 --- a/test/logger/helper.rb +++ /dev/null @@ -1,13 +0,0 @@ -ROOT_DIR = File.dirname(__dir__) -$LOAD_PATH.unshift File.join(ROOT_DIR, 'lib') # to use logger in this repo instead of ruby built-in logger -$LOAD_PATH.unshift File.join(ROOT_DIR, 'test', 'lib') # to use custom test-unit in this repo -require 'logger' -require 'test/unit' - -begin - # for standalone test suite on ruby/logger - require 'core_assertions' - - Test::Unit::TestCase.include Test::Unit::CoreAssertions -rescue LoadError -end 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 6fefd356cd..8f1c15542a 100644 --- a/test/logger/test_logdevice.rb +++ b/test/logger/test_logdevice.rb @@ -1,6 +1,6 @@ # coding: US-ASCII # frozen_string_literal: false -require_relative 'helper' +require 'logger' require 'tempfile' require 'tmpdir' @@ -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 4bbfd523c0..37d0f5862a 100644 --- a/test/logger/test_logger.rb +++ b/test/logger/test_logger.rb @@ -1,6 +1,6 @@ # coding: US-ASCII # frozen_string_literal: false -require_relative 'helper' +require 'logger' require 'tempfile' class TestLogger < Test::Unit::TestCase @@ -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_logperiod.rb b/test/logger/test_logperiod.rb index 3c5cbbcd9b..6e6e5e9533 100644 --- a/test/logger/test_logperiod.rb +++ b/test/logger/test_logperiod.rb @@ -1,6 +1,6 @@ # coding: US-ASCII # frozen_string_literal: false -require_relative 'helper' +require 'logger' require 'time' class TestLogPeriod < Test::Unit::TestCase diff --git a/test/logger/test_severity.rb b/test/logger/test_severity.rb index 1197e8abb9..e1069c8262 100644 --- a/test/logger/test_severity.rb +++ b/test/logger/test_severity.rb @@ -1,8 +1,10 @@ # coding: US-ASCII # frozen_string_literal: false -require_relative 'helper' +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 |