test/test_clogger.rb in clogger-0.5.0 vs test/test_clogger.rb in clogger-0.6.0
- old
+ new
@@ -1,10 +1,11 @@
# -*- encoding: binary -*-
$stderr.sync = $stdout.sync = true
require "test/unit"
require "date"
require "stringio"
+require "tempfile"
require "rack"
require "clogger"
@@ -238,36 +239,56 @@
def test_msec
str = StringIO.new
app = lambda { |env| [ 200, {}, [] ] }
cl = Clogger.new(app, :logger => str, :format => '$msec')
+ a = Time.now.to_f - 0.001
status, header, bodies = cl.call(@req)
assert_match %r(\A\d+\.\d{3}\n\z), str.string
+ b = Time.now.to_f + 0.001
+ logged = str.string.to_f
+ assert logged >= a, "#{logged} >= #{a}"
+ assert logged <= b, "#{logged} <= #{b}"
end
def test_usec
str = StringIO.new
app = lambda { |env| [ 200, {}, [] ] }
cl = Clogger.new(app, :logger => str, :format => '$usec')
+ a = Time.now.to_f - 0.000001
status, header, bodies = cl.call(@req)
assert_match %r(\A\d+\.\d{6}\n\z), str.string
+ b = Time.now.to_f + 0.000001
+ logged = str.string.to_f
+ assert logged >= a, "#{logged} >= #{a}"
+ assert logged <= b, "#{logged} <= #{b}"
end
def test_time_0
str = StringIO.new
app = lambda { |env| [ 200, {}, [] ] }
cl = Clogger.new(app, :logger => str, :format => '$time{0}')
+ a = Time.now.to_f - 1
status, header, bodies = cl.call(@req)
assert_match %r(\A\d+\n\z), str.string
+ b = Time.now.to_f + 1
+ logged = str.string.to_f
+ assert logged >= a, "#{logged} >= #{a}"
+ assert logged <= b, "#{logged} <= #{b}"
end
def test_time_1
str = StringIO.new
app = lambda { |env| [ 200, {}, [] ] }
cl = Clogger.new(app, :logger => str, :format => '$time{1}')
+ a = Time.now.to_f - 0.5
status, header, bodies = cl.call(@req)
assert_match %r(\A\d+\.\d\n\z), str.string
+ b = Time.now.to_f + 0.5
+ logged = str.string.to_f
+ assert logged >= a, "#{logged} >= #{a}"
+ assert logged <= b, "#{logged} <= #{b}"
end
def test_request_length
str = StringIO.new
input = StringIO.new('.....')
@@ -627,6 +648,33 @@
diff = after - before
assert(diff < 10000, "memory grew more than 10M: #{diff}")
end
end if RUBY_PLATFORM =~ /linux/ && File.readable?(LINUX_PROC_PID_STATUS)
+ def test_path_open_file
+ tmp = Tempfile.new('test_clogger')
+ app = lambda { |env| [ 200, {}, [] ] }
+ app = Clogger.new(app, :format => '$status', :path => tmp.path)
+ assert_kind_of Integer, app.fileno
+ assert app.fileno != tmp.fileno
+ status, headers, body = app.call(@req)
+ assert_equal "200\n", tmp.read
+ end
+
+ def test_path_logger_conflict
+ tmp = Tempfile.new('test_clogger')
+ app = lambda { |env| [ 200, {}, [] ] }
+ assert_raises(ArgumentError) {
+ Clogger.new(app, :logger=> $stderr, :path => tmp.path)
+ }
+ end
+
+ def test_request_time
+ s = []
+ app = lambda { |env| sleep(0.1) ; [302, [], [] ] }
+ cl = Clogger.new(app, :logger => s, :format => "$request_time")
+ status, headers, body = cl.call(@req)
+ assert_nothing_raised { body.each { |x| } ; body.close }
+ assert s[-1].to_f >= 0.100
+ assert s[-1].to_f <= 0.110
+ end
end