summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMike Perham <mike@perham.net>2023-02-09 17:08:33 -0800
committergit <svn-admin@ruby-lang.org>2023-02-10 01:08:49 +0000
commit194520f80e1cdb71faa055d731450855a1ddb8d1 (patch)
treee1b2a55db6d588213f5e26f2ed7cfed1dc597553 /test
parentb61edc5f5daf8fb664c9bcd7e51850176055d749 (diff)
[ruby/logger] Add Logger#with_level{...} for block-scoped log level.
(https://github.com/ruby/logger/pull/85) * Update lib/logger/severity.rb https://github.com/ruby/logger/commit/7aabb0b4aa
Diffstat (limited to 'test')
-rw-r--r--test/logger/test_severity.rb32
1 files changed, 32 insertions, 0 deletions
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