File: 01-basics.t

package info (click to toggle)
liblog-any-adapter-tap-perl 0.3.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, trixie
  • size: 160 kB
  • sloc: perl: 463; sh: 4; makefile: 2
file content (102 lines) | stat: -rw-r--r-- 3,414 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#! /usr/bin/perl

use strict;
use warnings;
use Test::More;
use Log::Any '$log';
use FindBin;
use lib "$FindBin::Bin/lib";
use TestLogging;

$SIG{__DIE__}= $SIG{__WARN__}= sub { diag @_; };

note "default filter level";

subtest initialization => sub {
	my @warnings;
	local $SIG{__WARN__}= sub { push @warnings, $_[0] };
	use_ok( 'Log::Any::Adapter', 'TAP' ) || BAIL_OUT;
	is( scalar @warnings, 0, "No warnings" )
		or do { diag("got warning: $_") for @warnings };
};

my $buf;

subtest 'Default filter level' => sub {
	test_log_method($log, @$_) for (
		# method, message, pattern
		[ 'fatal',   'test-fatal',   '', qr/\s*# fatal: test-fatal\n/ ],
		[ 'error',   'test-error',   '', qr/\s*# error: test-error\n/ ],
		[ 'warning', 'test-warning', '', qr/\s*# warning: test-warning\n/ ],
		[ 'notice',  'test-notice',  qr/\s*# notice: test-notice\n/, '' ],
		[ 'info',    'test-info',    qr/\s*# test-info\n/, '' ],
		[ 'debug',   'test-debug',   '', '' ],
		[ 'trace',   'test-trace',   '', '' ],
		[ 'info',    "line 1\nline 2",   qr/\s*# line 1\n\s*#\s+line 2\n/, '' ],
		[ 'info',    "line 1\nline 2\n", qr/\s*# line 1\n\s*#\s+line 2\n/, '' ],
	);
};

subtest "filter level 'error'" => sub {
	Log::Any::Adapter->set('TAP', filter => 'error');

	test_log_method($log, @$_) for (
		# method, message, pattern
		[ 'fatal',   'test-fatal',   '', qr/\s*# fatal: test-fatal\n/ ],
		[ 'error',   'test-error',   '', '' ],
		[ 'warning', 'test-warning', '', '' ],
		[ 'notice',  'test-notice',  '', '' ],
		[ 'info',    'test-info',    '', '' ],
		[ 'debug',   'test-debug',   '', '' ],
		[ 'trace',   'test-trace',   '', '' ],
	);
};

subtest "filter level 'trace'" => sub {
	Log::Any::Adapter->set('TAP', filter => 'trace');

	test_log_method($log, @$_) for (
		# method, message, pattern
		[ 'fatal',   'test-fatal',   '', qr/\s*# fatal: test-fatal\n/ ],
		[ 'error',   'test-error',   '', qr/\s*# error: test-error\n/ ],
		[ 'warning', 'test-warning', '', qr/\s*# warning: test-warning\n/ ],
		[ 'notice',  'test-notice',  qr/\s*# notice: test-notice\n/, '' ],
		[ 'info',    'test-info',    qr/\s*# test-info\n/, '' ],
		[ 'debug',   'test-debug',   qr/\s*# debug: test-debug\n/, '' ],
		[ 'trace',   'test-trace',   '', '' ],
	);
};

subtest "filter level 'none'" => sub {
	Log::Any::Adapter->set('TAP', filter => 'none');
	
	test_log_method($log, @$_) for (
		# method, message, pattern
		[ 'fatal',   'test-fatal',   '', qr/\s*# fatal: test-fatal\n/ ],
		[ 'error',   'test-error',   '', qr/\s*# error: test-error\n/ ],
		[ 'warning', 'test-warning', '', qr/\s*# warning: test-warning\n/ ],
		[ 'notice',  'test-notice',  qr/# notice: test-notice\n/, '' ],
		[ 'info',    'test-info',    qr/# test-info\n/, '' ],
		[ 'debug',   'test-debug',   qr/# debug: test-debug\n/, '' ],
		[ 'trace',   'test-trace',   qr/# trace: test-trace\n/, '' ],
	);
};

subtest "filter level 'all'" => sub {
	Log::Any::Adapter->set('TAP', filter => 'all');
	
	test_log_method($log, @$_) for (
		# method, message, pattern
		[ 'emergency', 'test-emerg',   '', '' ],
		[ 'critical',  'test-crit',    '', '' ],
		[ 'fatal',     'test-fatal',   '', '' ],
		[ 'error',     'test-error',   '', '' ],
		[ 'warning',   'test-warning', '', '' ],
		[ 'notice',    'test-notice',  '', '' ],
		[ 'info',      'test-info',    '', '' ],
		[ 'debug',     'test-debug',   '', '' ],
		[ 'trace',     'test-trace',   '', '' ],
	);
};

done_testing;