TwP-logging 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +169 -0
- data/README.rdoc +102 -0
- data/Rakefile +42 -0
- data/data/bad_logging_1.rb +13 -0
- data/data/bad_logging_2.rb +21 -0
- data/data/logging.rb +42 -0
- data/data/logging.yaml +63 -0
- data/data/simple_logging.rb +13 -0
- data/lib/logging.rb +408 -0
- data/lib/logging/appender.rb +303 -0
- data/lib/logging/appenders/buffering.rb +167 -0
- data/lib/logging/appenders/console.rb +62 -0
- data/lib/logging/appenders/email.rb +75 -0
- data/lib/logging/appenders/file.rb +54 -0
- data/lib/logging/appenders/growl.rb +197 -0
- data/lib/logging/appenders/io.rb +69 -0
- data/lib/logging/appenders/rolling_file.rb +291 -0
- data/lib/logging/appenders/syslog.rb +201 -0
- data/lib/logging/config/configurator.rb +190 -0
- data/lib/logging/config/yaml_configurator.rb +195 -0
- data/lib/logging/layout.rb +119 -0
- data/lib/logging/layouts/basic.rb +34 -0
- data/lib/logging/layouts/pattern.rb +296 -0
- data/lib/logging/log_event.rb +51 -0
- data/lib/logging/logger.rb +490 -0
- data/lib/logging/repository.rb +172 -0
- data/lib/logging/root_logger.rb +61 -0
- data/lib/logging/stats.rb +278 -0
- data/lib/logging/utils.rb +130 -0
- data/logging.gemspec +41 -0
- data/test/appenders/test_buffered_io.rb +183 -0
- data/test/appenders/test_console.rb +66 -0
- data/test/appenders/test_email.rb +171 -0
- data/test/appenders/test_file.rb +93 -0
- data/test/appenders/test_growl.rb +128 -0
- data/test/appenders/test_io.rb +142 -0
- data/test/appenders/test_rolling_file.rb +207 -0
- data/test/appenders/test_syslog.rb +194 -0
- data/test/benchmark.rb +87 -0
- data/test/config/test_configurator.rb +70 -0
- data/test/config/test_yaml_configurator.rb +40 -0
- data/test/layouts/test_basic.rb +43 -0
- data/test/layouts/test_pattern.rb +177 -0
- data/test/setup.rb +74 -0
- data/test/test_appender.rb +166 -0
- data/test/test_layout.rb +110 -0
- data/test/test_log_event.rb +80 -0
- data/test/test_logger.rb +734 -0
- data/test/test_logging.rb +267 -0
- data/test/test_repository.rb +126 -0
- data/test/test_root_logger.rb +81 -0
- data/test/test_stats.rb +274 -0
- data/test/test_utils.rb +116 -0
- metadata +156 -0
@@ -0,0 +1,267 @@
|
|
1
|
+
|
2
|
+
require File.join(File.dirname(__FILE__), %w[setup])
|
3
|
+
|
4
|
+
module TestLogging
|
5
|
+
|
6
|
+
class TestLogging < Test::Unit::TestCase
|
7
|
+
include LoggingTestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
super
|
11
|
+
@levels = ::Logging::LEVELS
|
12
|
+
@lnames = ::Logging::LNAMES
|
13
|
+
|
14
|
+
@fn = File.join(TMP, 'test.log')
|
15
|
+
@glob = File.join(TMP, '*.log')
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_backtrace
|
19
|
+
assert_equal true, ::Logging.backtrace
|
20
|
+
|
21
|
+
assert_equal false, ::Logging.backtrace('off')
|
22
|
+
assert_equal false, ::Logging.backtrace
|
23
|
+
|
24
|
+
assert_equal true, ::Logging.backtrace('on')
|
25
|
+
assert_equal true, ::Logging.backtrace
|
26
|
+
|
27
|
+
assert_equal false, ::Logging.backtrace(:off)
|
28
|
+
assert_equal false, ::Logging.backtrace
|
29
|
+
|
30
|
+
assert_equal true, ::Logging.backtrace(:on)
|
31
|
+
assert_equal true, ::Logging.backtrace
|
32
|
+
|
33
|
+
assert_equal false, ::Logging.backtrace(false)
|
34
|
+
assert_equal false, ::Logging.backtrace
|
35
|
+
|
36
|
+
assert_equal true, ::Logging.backtrace(true)
|
37
|
+
assert_equal true, ::Logging.backtrace
|
38
|
+
|
39
|
+
assert_raise(ArgumentError) {::Logging.backtrace 'foo'}
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_configure
|
43
|
+
assert_raise(ArgumentError) {::Logging.configure 'blah.txt'}
|
44
|
+
|
45
|
+
::Logging.configure 'data/logging.yaml'
|
46
|
+
|
47
|
+
names = %w[DEB INF PRT WRN ERR FAT]
|
48
|
+
assert_equal names, ::Logging::LNAMES
|
49
|
+
assert_equal :inspect, ::Logging::OBJ_FORMAT
|
50
|
+
assert_equal 3, ::Logging::Logger.root.level
|
51
|
+
|
52
|
+
# verify the appenders
|
53
|
+
h = ::Logging::Appender.instance_variable_get :@appenders
|
54
|
+
assert_equal ['logfile', 'stderr'], h.keys.sort
|
55
|
+
|
56
|
+
# start with the File appender
|
57
|
+
logfile = ::Logging::Appender['logfile']
|
58
|
+
assert_instance_of ::Logging::Appenders::File, logfile
|
59
|
+
assert_equal 0, logfile.level
|
60
|
+
assert_equal 'tmp/temp.log', logfile.instance_variable_get(:@fn)
|
61
|
+
|
62
|
+
layout = logfile.layout
|
63
|
+
assert_instance_of ::Logging::Layouts::Pattern, layout
|
64
|
+
assert_equal '[%d] %l %c : %m\\n', layout.pattern
|
65
|
+
assert_equal 'to_s', layout.date_method
|
66
|
+
assert_nil layout.date_pattern
|
67
|
+
|
68
|
+
# and now the Stderr appender
|
69
|
+
stderr = ::Logging::Appender['stderr']
|
70
|
+
assert_instance_of ::Logging::Appenders::Stderr, stderr
|
71
|
+
assert_equal 0, stderr.level
|
72
|
+
|
73
|
+
layout = stderr.layout
|
74
|
+
assert_instance_of ::Logging::Layouts::Basic, layout
|
75
|
+
|
76
|
+
# verify the loggers
|
77
|
+
h = ::Logging::Repository.instance.instance_variable_get :@h
|
78
|
+
assert_equal 4, h.length
|
79
|
+
|
80
|
+
# mylogger
|
81
|
+
mylogger = ::Logging::Logger['mylogger']
|
82
|
+
assert_equal 0, mylogger.level
|
83
|
+
assert_equal false, mylogger.additive
|
84
|
+
assert_equal false, mylogger.trace
|
85
|
+
|
86
|
+
appenders = mylogger.instance_variable_get :@appenders
|
87
|
+
assert_equal 2, appenders.length
|
88
|
+
assert_equal ['logfile', 'stderr'], appenders.map {|a| a.name}.sort
|
89
|
+
|
90
|
+
# yourlogger
|
91
|
+
yourlogger = ::Logging::Logger['yourlogger']
|
92
|
+
assert_equal 1, yourlogger.level
|
93
|
+
assert_equal true, yourlogger.additive
|
94
|
+
assert_equal false, yourlogger.trace
|
95
|
+
|
96
|
+
appenders = yourlogger.instance_variable_get :@appenders
|
97
|
+
assert_equal 2, appenders.length
|
98
|
+
assert_equal ['logfile', 'stderr'], appenders.map {|a| a.name}.sort
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_logger
|
102
|
+
assert_raise(TypeError) {::Logging.logger []}
|
103
|
+
|
104
|
+
logger = ::Logging.logger STDOUT
|
105
|
+
assert_match %r/\A-?\d+\z/, logger.name
|
106
|
+
assert_same logger, ::Logging.logger(STDOUT)
|
107
|
+
|
108
|
+
logger.close
|
109
|
+
assert !STDOUT.closed?
|
110
|
+
|
111
|
+
assert !File.exist?(@fn)
|
112
|
+
fd = File.new @fn, 'w'
|
113
|
+
logger = ::Logging.logger fd, 2, 100
|
114
|
+
assert_equal @fn, logger.name
|
115
|
+
logger.debug 'this is a debug message'
|
116
|
+
logger.warn 'this is a warning message'
|
117
|
+
logger.error 'and now we should have over 100 bytes of data ' +
|
118
|
+
'in the log file'
|
119
|
+
logger.info 'but the log file should not roll since we provided ' +
|
120
|
+
'a file descriptor -- not a file name'
|
121
|
+
logger.close
|
122
|
+
assert fd.closed?
|
123
|
+
assert File.exist?(@fn)
|
124
|
+
assert_equal 1, Dir.glob(@glob).length
|
125
|
+
|
126
|
+
FileUtils.rm_f @fn
|
127
|
+
assert !File.exist?(@fn)
|
128
|
+
logger = ::Logging.logger @fn, 2, 100
|
129
|
+
assert File.exist?(@fn)
|
130
|
+
assert_equal @fn, logger.name
|
131
|
+
logger.debug 'this is a debug message'
|
132
|
+
logger.warn 'this is a warning message'
|
133
|
+
logger.error 'and now we should have over 100 bytes of data ' +
|
134
|
+
'in the log file'
|
135
|
+
logger.info 'but the log file should not roll since we provided ' +
|
136
|
+
'a file descriptor -- not a file name'
|
137
|
+
logger.close
|
138
|
+
assert_equal 3, Dir.glob(@glob).length
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_init_default
|
142
|
+
assert_equal({}, @levels)
|
143
|
+
assert_equal([], @lnames)
|
144
|
+
assert_same false, ::Logging.const_defined?(:MAX_LEVEL_LENGTH)
|
145
|
+
|
146
|
+
::Logging::Repository.instance
|
147
|
+
|
148
|
+
assert_equal 5, @levels.length
|
149
|
+
assert_equal 5, @lnames.length
|
150
|
+
assert_equal 5, ::Logging::MAX_LEVEL_LENGTH
|
151
|
+
|
152
|
+
assert_equal 0, @levels['debug']
|
153
|
+
assert_equal 1, @levels['info']
|
154
|
+
assert_equal 2, @levels['warn']
|
155
|
+
assert_equal 3, @levels['error']
|
156
|
+
assert_equal 4, @levels['fatal']
|
157
|
+
|
158
|
+
assert_equal 'DEBUG', @lnames[0]
|
159
|
+
assert_equal 'INFO', @lnames[1]
|
160
|
+
assert_equal 'WARN', @lnames[2]
|
161
|
+
assert_equal 'ERROR', @lnames[3]
|
162
|
+
assert_equal 'FATAL', @lnames[4]
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_init_special
|
166
|
+
assert_equal({}, @levels)
|
167
|
+
assert_equal([], @lnames)
|
168
|
+
assert_same false, ::Logging.const_defined?(:MAX_LEVEL_LENGTH)
|
169
|
+
|
170
|
+
assert_raise(ArgumentError) {::Logging.init(1, 2, 3, 4)}
|
171
|
+
|
172
|
+
::Logging.init :one, 'two', :THREE, 'FoUr', :sIx
|
173
|
+
|
174
|
+
assert_equal 5, @levels.length
|
175
|
+
assert_equal 5, @lnames.length
|
176
|
+
assert_equal 5, ::Logging::MAX_LEVEL_LENGTH
|
177
|
+
|
178
|
+
assert_equal 0, @levels['one']
|
179
|
+
assert_equal 1, @levels['two']
|
180
|
+
assert_equal 2, @levels['three']
|
181
|
+
assert_equal 3, @levels['four']
|
182
|
+
assert_equal 4, @levels['six']
|
183
|
+
|
184
|
+
assert_equal 'ONE', @lnames[0]
|
185
|
+
assert_equal 'TWO', @lnames[1]
|
186
|
+
assert_equal 'THREE', @lnames[2]
|
187
|
+
assert_equal 'FOUR', @lnames[3]
|
188
|
+
assert_equal 'SIX', @lnames[4]
|
189
|
+
end
|
190
|
+
|
191
|
+
def test_init_all_off
|
192
|
+
assert_equal({}, @levels)
|
193
|
+
assert_equal([], @lnames)
|
194
|
+
assert_same false, ::Logging.const_defined?(:MAX_LEVEL_LENGTH)
|
195
|
+
|
196
|
+
::Logging.init %w(a b all c off d)
|
197
|
+
|
198
|
+
assert_equal 4, @levels.length
|
199
|
+
assert_equal 4, @lnames.length
|
200
|
+
assert_equal 3, ::Logging::MAX_LEVEL_LENGTH
|
201
|
+
|
202
|
+
assert_equal 0, @levels['a']
|
203
|
+
assert_equal 1, @levels['b']
|
204
|
+
assert_equal 2, @levels['c']
|
205
|
+
assert_equal 3, @levels['d']
|
206
|
+
|
207
|
+
assert_equal 'A', @lnames[0]
|
208
|
+
assert_equal 'B', @lnames[1]
|
209
|
+
assert_equal 'C', @lnames[2]
|
210
|
+
assert_equal 'D', @lnames[3]
|
211
|
+
end
|
212
|
+
|
213
|
+
def test_format_as
|
214
|
+
assert_equal false, ::Logging.const_defined?('OBJ_FORMAT')
|
215
|
+
|
216
|
+
assert_raises(ArgumentError) {::Logging.format_as 'bob'}
|
217
|
+
assert_raises(ArgumentError) {::Logging.format_as String}
|
218
|
+
assert_raises(ArgumentError) {::Logging.format_as :what?}
|
219
|
+
|
220
|
+
remove_const = lambda do |const|
|
221
|
+
::Logging.class_eval {remove_const const if const_defined? const}
|
222
|
+
end
|
223
|
+
|
224
|
+
::Logging.format_as :string
|
225
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
226
|
+
assert_equal :string, ::Logging::OBJ_FORMAT
|
227
|
+
remove_const[:OBJ_FORMAT]
|
228
|
+
|
229
|
+
::Logging.format_as :inspect
|
230
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
231
|
+
assert_equal :inspect, ::Logging::OBJ_FORMAT
|
232
|
+
remove_const[:OBJ_FORMAT]
|
233
|
+
|
234
|
+
::Logging.format_as :yaml
|
235
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
236
|
+
assert_equal :yaml, ::Logging::OBJ_FORMAT
|
237
|
+
remove_const[:OBJ_FORMAT]
|
238
|
+
|
239
|
+
::Logging.format_as 'string'
|
240
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
241
|
+
assert_equal :string, ::Logging::OBJ_FORMAT
|
242
|
+
remove_const[:OBJ_FORMAT]
|
243
|
+
|
244
|
+
::Logging.format_as 'inspect'
|
245
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
246
|
+
assert_equal :inspect, ::Logging::OBJ_FORMAT
|
247
|
+
remove_const[:OBJ_FORMAT]
|
248
|
+
|
249
|
+
::Logging.format_as 'yaml'
|
250
|
+
assert ::Logging.const_defined?('OBJ_FORMAT')
|
251
|
+
assert_equal :yaml, ::Logging::OBJ_FORMAT
|
252
|
+
remove_const[:OBJ_FORMAT]
|
253
|
+
end
|
254
|
+
|
255
|
+
def test_path
|
256
|
+
path = ::Logging.path(*%w[one two three])
|
257
|
+
assert_match %r/one\/two\/three$/, path
|
258
|
+
end
|
259
|
+
|
260
|
+
def test_version
|
261
|
+
assert_match %r/\d+\.\d+\.\d+/, ::Logging.version
|
262
|
+
end
|
263
|
+
|
264
|
+
end # class TestLogging
|
265
|
+
end # module TestLogging
|
266
|
+
|
267
|
+
# EOF
|
@@ -0,0 +1,126 @@
|
|
1
|
+
|
2
|
+
require File.join(File.dirname(__FILE__), %w[setup])
|
3
|
+
|
4
|
+
module TestLogging
|
5
|
+
|
6
|
+
class TestRepository < Test::Unit::TestCase
|
7
|
+
include LoggingTestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
super
|
11
|
+
@repo = ::Logging::Repository.instance
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_instance
|
15
|
+
assert_same @repo, ::Logging::Repository.instance
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_aref
|
19
|
+
root = @repo[:root]
|
20
|
+
assert_same root, @repo[:root]
|
21
|
+
|
22
|
+
a = []
|
23
|
+
::Logging::Logger.new a
|
24
|
+
assert_same @repo['Array'], @repo[Array]
|
25
|
+
assert_same @repo['Array'], @repo[a]
|
26
|
+
|
27
|
+
assert_not_same @repo['Array'], @repo[:root]
|
28
|
+
|
29
|
+
::Logging::Logger.new 'A'
|
30
|
+
::Logging::Logger.new 'A::B'
|
31
|
+
assert_not_same @repo['A'], @repo['A::B']
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_aset
|
35
|
+
root = @repo[:root]
|
36
|
+
@repo[:root] = 'root'
|
37
|
+
assert_not_same root, @repo[:root]
|
38
|
+
|
39
|
+
assert_nil @repo['blah']
|
40
|
+
@repo['blah'] = 'root'
|
41
|
+
assert_equal 'root', @repo['blah']
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_fetch
|
45
|
+
assert @repo.has_logger?(:root)
|
46
|
+
assert_same @repo[:root], @repo.fetch(:root)
|
47
|
+
|
48
|
+
assert !@repo.has_logger?('A')
|
49
|
+
assert_raise(KeyError) {@repo.fetch 'A'}
|
50
|
+
|
51
|
+
%w(A A::B A::B::C::D A::B::C::E A::B::C::F).each do |name|
|
52
|
+
::Logging::Logger.new(name)
|
53
|
+
end
|
54
|
+
|
55
|
+
assert @repo.has_logger?('A')
|
56
|
+
assert @repo.has_logger?('A::B')
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_parent
|
60
|
+
%w(A A::B A::B::C::D A::B::C::E A::B::C::F).each do |name|
|
61
|
+
::Logging::Logger.new(name)
|
62
|
+
end
|
63
|
+
|
64
|
+
assert_same @repo[:root], @repo.parent('A')
|
65
|
+
assert_same @repo['A'], @repo.parent('A::B')
|
66
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C')
|
67
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C::D')
|
68
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C::E')
|
69
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C::F')
|
70
|
+
|
71
|
+
::Logging::Logger.new('A::B::C')
|
72
|
+
|
73
|
+
assert_same @repo['A::B'], @repo.parent('A::B::C')
|
74
|
+
assert_same @repo['A::B::C'], @repo.parent('A::B::C::D')
|
75
|
+
assert_same @repo['A::B::C'], @repo.parent('A::B::C::E')
|
76
|
+
assert_same @repo['A::B::C'], @repo.parent('A::B::C::F')
|
77
|
+
|
78
|
+
::Logging::Logger.new('A::B::C::E::G')
|
79
|
+
|
80
|
+
assert_same @repo['A::B::C::E'], @repo.parent('A::B::C::E::G')
|
81
|
+
|
82
|
+
assert_nil @repo.parent('root')
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_children
|
86
|
+
::Logging::Logger.new('A')
|
87
|
+
|
88
|
+
assert_equal [], @repo.children('A')
|
89
|
+
|
90
|
+
::Logging::Logger.new('A::B')
|
91
|
+
a = %w(D E F).map {|name| ::Logging::Logger.new('A::B::C::'+name)}.sort
|
92
|
+
|
93
|
+
assert_equal [@repo['A::B']], @repo.children('A')
|
94
|
+
assert_equal a, @repo.children('A::B')
|
95
|
+
assert_equal [], @repo.children('A::B::C')
|
96
|
+
|
97
|
+
::Logging::Logger.new('A::B::C')
|
98
|
+
|
99
|
+
assert_equal [@repo['A::B::C']], @repo.children('A::B')
|
100
|
+
assert_equal a, @repo.children('A::B::C')
|
101
|
+
|
102
|
+
::Logging::Logger.new('A::B::C::E::G')
|
103
|
+
|
104
|
+
assert_equal a, @repo.children('A::B::C')
|
105
|
+
assert_equal [@repo['A::B::C::E::G']], @repo.children('A::B::C::E')
|
106
|
+
|
107
|
+
assert_equal [@repo['A'], @repo['Logging']], @repo.children('root')
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_to_key
|
111
|
+
assert_equal :root, @repo.to_key(:root)
|
112
|
+
assert_equal 'Object', @repo.to_key('Object')
|
113
|
+
assert_equal 'Object', @repo.to_key(Object)
|
114
|
+
assert_equal 'Object', @repo.to_key(Object.new)
|
115
|
+
|
116
|
+
assert_equal 'String', @repo.to_key(String)
|
117
|
+
assert_equal 'Array', @repo.to_key([])
|
118
|
+
|
119
|
+
assert_equal 'blah', @repo.to_key('blah')
|
120
|
+
assert_equal 'blah', @repo.to_key(:blah)
|
121
|
+
end
|
122
|
+
|
123
|
+
end # class TestRepository
|
124
|
+
end # module TestLogging
|
125
|
+
|
126
|
+
# EOF
|
@@ -0,0 +1,81 @@
|
|
1
|
+
|
2
|
+
require File.join(File.dirname(__FILE__), %w[setup])
|
3
|
+
|
4
|
+
module TestLogging
|
5
|
+
|
6
|
+
class TestRootLogger < Test::Unit::TestCase
|
7
|
+
include LoggingTestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
super
|
11
|
+
@root = ::Logging::Logger.root
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_additive
|
15
|
+
assert_raise(NoMethodError) {@root.additive}
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_additive_eq
|
19
|
+
assert_raise(NoMethodError) {@root.additive = true}
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_level_eq
|
23
|
+
assert_equal 0, @root.level
|
24
|
+
|
25
|
+
assert_raise(ArgumentError) {@root.level = -1}
|
26
|
+
assert_raise(ArgumentError) {@root.level = 6}
|
27
|
+
assert_raise(ArgumentError) {@root.level = Object}
|
28
|
+
assert_raise(ArgumentError) {@root.level = 'bob'}
|
29
|
+
assert_raise(ArgumentError) {@root.level = :wtf}
|
30
|
+
|
31
|
+
@root.level = 'INFO'
|
32
|
+
assert_equal 1, @root.level
|
33
|
+
|
34
|
+
@root.level = :warn
|
35
|
+
assert_equal 2, @root.level
|
36
|
+
|
37
|
+
@root.level = 'error'
|
38
|
+
assert_equal 3, @root.level
|
39
|
+
|
40
|
+
@root.level = 4
|
41
|
+
assert_equal 4, @root.level
|
42
|
+
|
43
|
+
@root.level = :all
|
44
|
+
assert_equal 0, @root.level
|
45
|
+
|
46
|
+
@root.level = 'OFF'
|
47
|
+
assert_equal 5, @root.level
|
48
|
+
|
49
|
+
@root.level = nil
|
50
|
+
assert_equal 0, @root.level
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_name
|
54
|
+
assert_equal 'root', @root.name
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_parent
|
58
|
+
assert_raise(NoMethodError) {@root.parent}
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_parent_eq
|
62
|
+
assert_raise(NoMethodError) {@root.parent = nil}
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_spaceship
|
66
|
+
logs = %w(
|
67
|
+
A A::B A::B::C A::B::C::D A::B::C::E A::B::C::E::G A::B::C::F
|
68
|
+
).map {|x| ::Logging::Logger[x]}
|
69
|
+
|
70
|
+
logs.each do |log|
|
71
|
+
assert_equal(-1, @root <=> log, "'root' <=> '#{log.name}'")
|
72
|
+
end
|
73
|
+
|
74
|
+
assert_equal 0, @root <=> @root
|
75
|
+
assert_raise(ArgumentError) {@root <=> 'string'}
|
76
|
+
end
|
77
|
+
|
78
|
+
end # class TestRootLogger
|
79
|
+
end # module TestLogging
|
80
|
+
|
81
|
+
# EOF
|