1local function test_log_level()
2	same(log_level(), 'notice', 'default level is notice')
3	same(verbose(), false, 'verbose is not set by default')
4	same(log_level('crit'), 'crit', '"crit" level can be set')
5	same(log_level('err'), 'err', '"err" level can be set')
6	same(log_level('warning'), 'warning', '"warning" level can be set')
7	same(log_level('notice'), 'notice', '"notice" level can be set')
8	same(log_level('info'), 'info', '"info" level can be set')
9	same(log_level('debug'), 'debug', '"debug" level can be set')
10	same(verbose(), true, 'verbose is active when debug level is set')
11	same(verbose(false), false, 'verbose can be used to turn off debug level')
12	same(log_level(), 'notice', 'verbose returns log level to notice')
13	boom(log_level, { 'xxx' }, "unknown level can't be used")
14	boom(log_level, { 7 }, "numbered levels aren't supported")
15	boom(log_level, { 1, 2 }, "level doesn't take multiple arguments")
16end
17
18local function test_log_target()
19	same(log_target(), 'stderr', 'default target is stderr')
20	same(log_target('stdout'), 'stdout', 'stdout target can be set')
21	same(log_target('syslog'), 'syslog', 'syslog target can be set')
22	same(log_target('stderr'), 'stderr', 'stderr target can be set')
23	boom(log_level, { 'xxx' }, "unknown target can't be used")
24	boom(log_level, { 'stderr', 'syslog' }, "target doesn't take multiple arguments")
25end
26
27local function test_log_groups()
28	same(log_groups(), {}, 'no groups are logged by default')
29	same(log_groups({'system'}), {'system'}, 'configure "system" group')
30	same(log_groups({'devel'}), {'devel'}, 'another call overrides previously set groups')
31	same(log_groups({'devel', 'system'}), {'system', 'devel'}, 'configure multiple groups')
32	same(log_groups({}), {}, 'clear groups with empty table')
33	boom(log_groups, { 'string' }, "group argument can't be string")
34	boom(log_groups, { {'nonexistent'} }, "nonexistent group can't be added")
35	boom(log_groups, { 1, 2 }, "group doesn't take multiple arguments")
36end
37
38return {
39	test_log_level,
40	test_log_target,
41	test_log_groups,
42}
43