Python Logging Formatting Improvements
[sliver-openvswitch.git] / tests / vlog.at
1 AT_BANNER([vlog])
2
3 AT_SETUP([vlog - Python])
4 AT_SKIP_IF([test $HAVE_PYTHON = no])
5 AT_CAPTURE_FILE([log_file])
6 AT_CAPTURE_FILE([stderr_log])
7 AT_CHECK([$PYTHON $srcdir/test-vlog.py --log-file log_file \
8 -v dbg module_1:info module_2:warn syslog:off 2>stderr_log])
9
10 AT_CHECK([sed -e 's/.*-.*-.*T..:..:..Z |//' \
11 -e 's/File ".*", line [[0-9]][[0-9]]*,/File <name>, line <number>,/' \
12 stderr_log], [0], [dnl
13   0  | module_0 | EMER | emergency
14   1  | module_0 | ERR | error
15   2  | module_0 | WARN | warning
16   3  | module_0 | INFO | information
17   4  | module_0 | DBG | debug
18   5  | module_0 | EMER | emergency exception
19 Traceback (most recent call last):
20   File <name>, line <number>, in main
21     assert fail
22 AssertionError
23   6  | module_0 | ERR | error exception
24 Traceback (most recent call last):
25   File <name>, line <number>, in main
26     assert fail
27 AssertionError
28   7  | module_0 | WARN | warn exception
29 Traceback (most recent call last):
30   File <name>, line <number>, in main
31     assert fail
32 AssertionError
33   8  | module_0 | INFO | information exception
34 Traceback (most recent call last):
35   File <name>, line <number>, in main
36     assert fail
37 AssertionError
38   9  | module_0 | DBG | debug exception
39 Traceback (most recent call last):
40   File <name>, line <number>, in main
41     assert fail
42 AssertionError
43   10 | module_0 | ERR | exception
44 Traceback (most recent call last):
45   File <name>, line <number>, in main
46     assert fail
47 AssertionError
48   11 | module_1 | EMER | emergency
49   12 | module_1 | ERR | error
50   13 | module_1 | WARN | warning
51   14 | module_1 | INFO | information
52   16 | module_1 | EMER | emergency exception
53 Traceback (most recent call last):
54   File <name>, line <number>, in main
55     assert fail
56 AssertionError
57   17 | module_1 | ERR | error exception
58 Traceback (most recent call last):
59   File <name>, line <number>, in main
60     assert fail
61 AssertionError
62   18 | module_1 | WARN | warn exception
63 Traceback (most recent call last):
64   File <name>, line <number>, in main
65     assert fail
66 AssertionError
67   19 | module_1 | INFO | information exception
68 Traceback (most recent call last):
69   File <name>, line <number>, in main
70     assert fail
71 AssertionError
72   21 | module_1 | ERR | exception
73 Traceback (most recent call last):
74   File <name>, line <number>, in main
75     assert fail
76 AssertionError
77   22 | module_2 | EMER | emergency
78   23 | module_2 | ERR | error
79   24 | module_2 | WARN | warning
80   27 | module_2 | EMER | emergency exception
81 Traceback (most recent call last):
82   File <name>, line <number>, in main
83     assert fail
84 AssertionError
85   28 | module_2 | ERR | error exception
86 Traceback (most recent call last):
87   File <name>, line <number>, in main
88     assert fail
89 AssertionError
90   29 | module_2 | WARN | warn exception
91 Traceback (most recent call last):
92   File <name>, line <number>, in main
93     assert fail
94 AssertionError
95   32 | module_2 | ERR | exception
96 Traceback (most recent call last):
97   File <name>, line <number>, in main
98     assert fail
99 AssertionError
100 ])
101
102 AT_CLEANUP
103
104 AT_SETUP([vlog - vlog/reopen - Python])
105 AT_SKIP_IF([test $HAVE_PYTHON = no])
106 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
107 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
108 OVS_DBDIR=`pwd`; export OVS_DBDIR
109 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
110 ON_EXIT([kill `cat test-unixctl.py.pid`])
111
112 AT_CAPTURE_FILE([log])
113 AT_CAPTURE_FILE([log.old])
114 AT_CHECK([$PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach])
115
116 AT_CHECK([APPCTL -t test-unixctl.py log message])
117 mv log log.old
118 AT_CHECK([APPCTL -t test-unixctl.py log message2])
119 AT_CHECK([APPCTL -t test-unixctl.py vlog/reopen])
120 AT_CHECK([APPCTL -t test-unixctl.py log message3])
121 AT_CHECK([APPCTL -t test-unixctl.py exit])
122
123 AT_CHECK([sed 's/.*|//' log.old], [0], [dnl
124  Entering run loop.
125  message
126  message2
127 ])
128 AT_CHECK([sed 's/.*|//' log], [0], [dnl
129  message3
130 ])
131 AT_CLEANUP
132
133 AT_SETUP([vlog - vlog/reopen without log file - Python])
134 AT_SKIP_IF([test $HAVE_PYTHON = no])
135 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
136 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
137 OVS_DBDIR=`pwd`; export OVS_DBDIR
138 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
139 ON_EXIT([kill `cat test-unixctl.py.pid`])
140
141 AT_CHECK([$PYTHON $srcdir/test-unixctl.py --pidfile --detach])
142
143 AT_CHECK([APPCTL -t test-unixctl.py vlog/reopen], [0],
144   [Logging to file not configured
145 ])
146 AT_CLEANUP
147
148 dnl This checks that if vlog/reopen can't reopen the log file,
149 dnl nothing particularly bad (e.g. Python throws an exception and
150 dnl aborts the program) happens.
151 AT_SETUP([vlog - vlog/reopen can't reopen log file - Python])
152 AT_SKIP_IF([test $HAVE_PYTHON = no])
153
154 # Verify that /dev/full is a character device that fails writes.
155 AT_SKIP_IF([test ! -c /dev/full])
156 AT_SKIP_IF([echo > /dev/full])
157
158 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
159 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
160 OVS_DBDIR=`pwd`; export OVS_DBDIR
161 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
162 ON_EXIT([kill `cat test-unixctl.py.pid`])
163
164 AT_CHECK([$PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach])
165 AT_CHECK([APPCTL -t test-unixctl.py log message])
166 mv log log.old
167 ln -s /dev/full log
168 AT_CHECK([APPCTL -t test-unixctl.py vlog/reopen])
169 AT_CHECK([APPCTL -t test-unixctl.py log message2])
170 rm log
171 AT_CHECK([APPCTL -t test-unixctl.py vlog/reopen])
172 AT_CHECK([APPCTL -t test-unixctl.py log message3])
173 AT_CHECK([APPCTL -t test-unixctl.py exit])
174 AT_CHECK([sed 's/.*|//' log.old], [0], [dnl
175  Entering run loop.
176  message
177 ])
178 AT_CHECK([sed 's/.*|//' log], [0], [dnl
179  message3
180 ])
181 AT_CLEANUP
182
183 AT_SETUP([vlog - vlog/set and vlog/list - Python])
184 AT_SKIP_IF([test $HAVE_PYTHON = no])
185 OVS_RUNDIR=`pwd`; export OVS_RUNDIR
186 OVS_LOGDIR=`pwd`; export OVS_LOGDIR
187 OVS_DBDIR=`pwd`; export OVS_DBDIR
188 OVS_SYSCONFDIR=`pwd`; export OVS_SYSCONFDIR
189 ON_EXIT([kill `cat test-unixctl.py.pid`])
190
191 AT_CAPTURE_FILE([log])
192 AT_CHECK([$PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach])
193
194 AT_CHECK([APPCTL -t test-unixctl.py vlog/list], [0], [dnl
195                  console    syslog    file
196                  -------    ------    ------
197 daemon            info       info       info
198 fatal-signal      info       info       info
199 jsonrpc           info       info       info
200 poller            info       info       info
201 reconnect         info       info       info
202 socket_util       info       info       info
203 stream            info       info       info
204 test-unixctl      info       info       info
205 unixctl_server    info       info       info
206 ])
207
208 AT_CHECK([APPCTL -t test-unixctl.py vlog/set daemon:syslog:err])
209 AT_CHECK([APPCTL -t test-unixctl.py vlog/set file:dbg])
210 AT_CHECK([APPCTL -t test-unixctl.py vlog/set nonexistent], [0],
211   [no facility, level, or module "nonexistent"
212 ])
213 AT_CHECK([APPCTL -t test-unixctl.py vlog/list], [0], [dnl
214                  console    syslog    file
215                  -------    ------    ------
216 daemon            info        err        dbg
217 fatal-signal      info       info        dbg
218 jsonrpc           info       info        dbg
219 poller            info       info        dbg
220 reconnect         info       info        dbg
221 socket_util       info       info        dbg
222 stream            info       info        dbg
223 test-unixctl      info       info        dbg
224 unixctl_server    info       info        dbg
225 ])
226
227 AT_CHECK([APPCTL -t test-unixctl.py vlog/set pattern], [0],
228   [Please supply a valid pattern and facility
229 ])
230 AT_CHECK([APPCTL -t test-unixctl.py vlog/set pattern:nonexistent], [0],
231   [Facility nonexistent does not exist
232 ])
233 AT_CHECK([APPCTL -t test-unixctl.py vlog/set pattern:file:'I<3OVS|%m'])
234 AT_CHECK([APPCTL -t test-unixctl.py log patterntest])
235 AT_CHECK([grep -q 'I<3OVS' log])
236 AT_CLEANUP