diff options
Diffstat (limited to 'test/logger/test_logger.rb')
-rw-r--r-- | test/logger/test_logger.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/test/logger/test_logger.rb b/test/logger/test_logger.rb index 04bf779538..eda6484a56 100644 --- a/test/logger/test_logger.rb +++ b/test/logger/test_logger.rb @@ -2,6 +2,7 @@ require 'test/unit' require 'logger' require 'tempfile' +require 'tmpdir' require_relative '../ruby/envutil' @@ -542,6 +543,44 @@ class TestLogDevice < Test::Unit::TestCase 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 + private def run_children(n, args, src) |