Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

root/tools/gauge/test/log_writer_test.rb

Revision 2461, 2.4 kB (checked in by minam, 3 years ago)

gauge: more refactoring. log reader

Line 
1 require "#{File.dirname(__FILE__)}/test_setup"
2 require 'gauge/log_writer'
3 require 'stringio'
4
5 class LogWriterTest < Test::Unit::TestCase
6   FIXTURES = "#{File.dirname(__FILE__)}/fixtures"
7
8   def test_no_prior_logs
9     assert !File.exist?("#{FIXTURES}/logger/pristine/testing-0000.log")
10     logger = Gauge::LogWriter.new("testing", "#{FIXTURES}/logger/pristine")
11     assert File.exist?("#{FIXTURES}/logger/pristine/testing-0000.log")
12     assert_equal 0, logger.number
13     assert_equal "testing", logger.application
14   ensure
15     File.delete("#{FIXTURES}/logger/pristine/testing-0000.log") rescue nil
16   end
17
18   def test_existing_logs
19     logger = Gauge::LogWriter.new("testing", "#{FIXTURES}/logger/existing")
20     assert File.exist?("#{FIXTURES}/logger/existing/testing-0001.log")
21     assert_equal 1, logger.number
22     assert_equal "testing", logger.application
23   end
24
25   def test_rotate_log
26     logger = Gauge::LogWriter.new("testing", "#{FIXTURES}/logger/existing")
27     assert File.exist?("#{FIXTURES}/logger/existing/testing-0001.log")
28     assert_equal 1, logger.number
29     logger.next!
30     assert File.exist?("#{FIXTURES}/logger/existing/testing-0002.log")
31     assert_equal 2, logger.number
32   ensure
33     File.delete("#{FIXTURES}/logger/existing/testing-0002.log") rescue nil
34   end
35
36   def test_explicit_io_object
37     io = StringIO.new
38     logger = Gauge::LogWriter.new("testing", io)
39     assert_nil logger.number
40     logger.record "testing", "hello"
41     assert_match %r{testing.*hello}, io.string
42   end
43
44   def test_rotate_with_explicit_io_object
45     io = StringIO.new
46     logger = Gauge::LogWriter.new("testing", io)
47     assert_raises(ArgumentError) { logger.next! }
48   end
49
50   def test_logger_default_max_size
51     io = StringIO.new
52     logger = Gauge::LogWriter.new("testing", io)
53     assert_equal 100*1024*1024, logger.max_size
54   end
55
56   def test_logger_max_size
57     io = StringIO.new
58     logger = Gauge::LogWriter.new("testing", io, :max_size => 1024)
59     assert_equal 1024, logger.max_size
60   end
61
62   def test_logger_rotate_by_max_size_exceeded
63     logger = Gauge::LogWriter.new("testing", "#{FIXTURES}/logger/existing",
64       :max_size => 0)
65     assert_equal 1, logger.number
66     logger.record "testing", "hello"
67     assert_equal 2, logger.number
68     assert_match %r{testing.*hello}, File.read("#{FIXTURES}/logger/existing/testing-0002.log")
69   ensure
70     File.delete("#{FIXTURES}/logger/existing/testing-0002.log") rescue nil
71   end
72 end
Note: See TracBrowser for help on using the browser.