(This page was automatically generated by the tools in the opsboy project on 04:51:59 11-Oct-2024 GMT.)

Detailed Test Report for lua-resty-core in linux i386 (hv)

Summary

Commit Testing Time Unexpected
Failures
Expected
Failures
Files Tests Elapsed Time
812b2d38 2023-12-28 09:02:36 GMT 338 133 88 12229 2490 sec

LuaJIT

LuaJIT 2.1.1700206165, commit 4182d6bf

OpenSSL

OpenSSL 1.1.1w 11 Sep 2023

Compilation Errors

Segmentation Faults

Unexpected Failures

File Name Details
balancer-timeout.t TEST 1: set_timeouts - grep_error_log_out (req 0) 'event timer add: 10: 1234:
event timer add: 10: 5678:
event timer add: 10: 7689:
event timer add: 10: 7689:
'
doesn't match '(?^:\Aevent timer add: \d+: 1234:
event timer add: \d+: 5678:
event timer add: \d+: 7689:
\z)'
balancer.t ERROR: client socket timed out - TEST 17: https (no keepalive) '
balancer.t TEST 17: https (no keepalive) - status code ok got: ''
expected: '200'
balancer.t TEST 17: https (no keepalive) - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'ok'
balancer.t ERROR: client socket timed out - TEST 16: https (keepalive) '
balancer.t TEST 16: https (keepalive) - status code ok got: ''
expected: '200'
balancer.t TEST 16: https (keepalive) - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'ok'
ctx.t ERROR: client socket timed out - TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) '
ctx.t TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) - status code ok got: ''
expected: '200'
ctx.t TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) - response_body - response is expected (repeated req 0, req 0) got: ""
length: 0
expected: "received: 1\x{0a}received: 2\x{0a}"
length: 24
strings begin to differ at char 1 (line 1 column 1)
ctx.t ERROR: client socket timed out - TEST 10: ngx.ctx in ssl* and other phases '
ctx.t TEST 10: ngx.ctx in ssl* and other phases - status code ok got: ''
expected: '200'
ctx.t TEST 10: ngx.ctx in ssl* and other phases - grep_error_log_out (req 0) got: ""
length: 0
expected: "lua release ngx.ctx at ref 2\x{0a}received: 112\x{0a}lua rel"...
length: 115
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 10: ngx.ctx in ssl* and other phases - grep_error_log_out (req 1) got: ..."tx at ref 1\x{0a}lua release ngx.ctx at ref 2\x{0a}received:"...
length: 144
expected: ..."tx at ref 2\x{0a}received: 112\x{0a}lua release ngx.ctx at r"...
length: 230
strings begin to differ at char 28 (line 1 column 28)
ctx.t ERROR: client socket timed out - TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) '
ctx.t TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) - status code ok got: ''
expected: '200'
ctx.t TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) - response_body - response is expected (repeated req 0, req 0) got: ""
length: 0
expected: "closed\x{0a}"
length: 7
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) - grep_error_log_out (req 0) got: ""
length: 0
expected: "lua release ngx.ctx at ref 1\x{0a}"
length: 29
strings begin to differ at char 1 (line 1 column 1)
ctx.t ERROR: client socket timed out - TEST 3: ngx.ctx in ssl_certificate_by_lua '
ctx.t TEST 3: ngx.ctx in ssl_certificate_by_lua - status code ok got: ''
expected: '200'
ctx.t TEST 3: ngx.ctx in ssl_certificate_by_lua - response_body - response is expected (repeated req 0, req 0) got: ""
length: 0
expected: "received: 42\x{0a}received: 1\x{0a}received: 42\x{0a}received: 1\x{0a}"
length: 50
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 3: ngx.ctx in ssl_certificate_by_lua - grep_error_log_out (req 0) got: ""
length: 0
expected: "lua release ngx.ctx at ref 2\x{0a}lua release ngx.ctx a"...
length: 87
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 3: ngx.ctx in ssl_certificate_by_lua - grep_error_log_out (req 1) got: ..."tx at ref 1\x{0a}lua release ngx.ctx at ref 1\x{0a}lua relea"...
length: 174
expected: ..."tx at ref 2\x{0a}lua release ngx.ctx at ref 2\x{0a}lua relea"...
length: 174
strings begin to differ at char 115 (line 4 column 28)
ctx.t ERROR: client socket timed out - TEST 11: overwrite values will only take affect in the current http request '
ctx.t TEST 11: overwrite values will only take affect in the current http request - status code ok got: ''
expected: '200'
ctx.t TEST 11: overwrite values will only take affect in the current http request - response_body - response is expected (repeated req 0, req 0) got: ""
length: 0
expected: "received: 0\x{0a}received: 0\x{0a}"
length: 24
strings begin to differ at char 1 (line 1 column 1)
ctx.t ERROR: client socket timed out - TEST 6: ngx.ctx in ssl_session_store_by_lua '
ctx.t TEST 6: ngx.ctx in ssl_session_store_by_lua - status code ok got: ''
expected: '200'
ctx.t TEST 6: ngx.ctx in ssl_session_store_by_lua - response_body - response is expected (repeated req 0, req 0) got: ""
length: 0
expected: "received: 42\x{0a}received: 1\x{0a}received: 42\x{0a}received: 1\x{0a}"
length: 50
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 6: ngx.ctx in ssl_session_store_by_lua - grep_error_log_out (req 0) got: ""
length: 0
expected: "lua release ngx.ctx at ref 2\x{0a}lua release ngx.ctx a"...
length: 87
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 6: ngx.ctx in ssl_session_store_by_lua - pattern "ngx.ctx.answer = 42" should match a line in error.log (req 0)
ctx.t TEST 6: ngx.ctx in ssl_session_store_by_lua - grep_error_log_out (req 1) got: ..."tx at ref 1\x{0a}lua release ngx.ctx at ref 2\x{0a}lua relea"...
length: 116
expected: ..."tx at ref 2\x{0a}lua release ngx.ctx at ref 2\x{0a}lua relea"...
length: 174
strings begin to differ at char 28 (line 1 column 28)
ctx.t ERROR: client socket timed out - TEST 14: ngx.ctx in ssl_client_hello_by_lua '
ctx.t TEST 14: ngx.ctx in ssl_client_hello_by_lua - status code ok got: ''
expected: '200'
ctx.t TEST 14: ngx.ctx in ssl_client_hello_by_lua - response_body - response is expected (repeated req 0, req 0) got: ""
length: 0
expected: "received: 42\x{0a}received: 1\x{0a}received: 42\x{0a}received: 1\x{0a}"
length: 50
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 14: ngx.ctx in ssl_client_hello_by_lua - grep_error_log_out (req 0) got: ""
length: 0
expected: "lua release ngx.ctx at ref 2\x{0a}lua release ngx.ctx a"...
length: 87
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 14: ngx.ctx in ssl_client_hello_by_lua - grep_error_log_out (req 1) got: ..."tx at ref 1\x{0a}lua release ngx.ctx at ref 1\x{0a}lua relea"...
length: 174
expected: ..."tx at ref 2\x{0a}lua release ngx.ctx at ref 2\x{0a}lua relea"...
length: 174
strings begin to differ at char 115 (line 4 column 28)
ctx.t ERROR: client socket timed out - TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) '
ctx.t TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) - status code ok got: ''
expected: '200'
ctx.t TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) - response_body - response is expected (repeated req 0, req 0) got: ""
length: 0
expected: "closed\x{0a}"
length: 7
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) - grep_error_log_out (req 0) got: ""
length: 0
expected: "lua release ngx.ctx at ref 1\x{0a}"
length: 29
strings begin to differ at char 1 (line 1 column 1)
ctx.t ERROR: client socket timed out - TEST 8: ngx.ctx in ssl_session_fetch_by_lua '
ctx.t TEST 8: ngx.ctx in ssl_session_fetch_by_lua - status code ok got: ''
expected: '200'
ctx.t TEST 8: ngx.ctx in ssl_session_fetch_by_lua - grep_error_log_out (req 0) got: ""
length: 0
expected: "lua release ngx.ctx at ref 1\x{0a}"
length: 29
strings begin to differ at char 1 (line 1 column 1)
ctx.t TEST 8: ngx.ctx in ssl_session_fetch_by_lua - grep_error_log_out (req 1) got: ..."tx at ref 1\x{0a}"...
length: 58
expected: ..."tx at ref 2\x{0a}received: 42\x{0a}received: 1\x{0a}lua release n"...
length: 166
strings begin to differ at char 57 (line 2 column 28)
ocsp.t ERROR: client socket timed out - TEST 17: no status req from client '
ocsp.t TEST 17: no status req from client - no last chunk found - d connected: 1

'
ocsp.t TEST 17: no status req from client - status code ok got: ''
expected: '200'
ocsp.t TEST 17: no status req from client - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert '
ocsp.t TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - no last chunk found - d connected: 1

'
ocsp.t TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - status code ok got: ''
expected: '200'
ocsp.t TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 16: good status req from client '
ocsp.t TEST 16: good status req from client - no last chunk found - d connected: 1

'
ocsp.t TEST 16: good status req from client - status code ok got: ''
expected: '200'
ocsp.t TEST 16: good status req from client - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 6: create OCSP request (good) '
ocsp.t TEST 6: create OCSP request (good) - no last chunk found - d connected: 1

'
ocsp.t TEST 6: create OCSP request (good) - status code ok got: ''
expected: '200'
ocsp.t TEST 6: create OCSP request (good) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 10: validate good OCSP response '
ocsp.t TEST 10: validate good OCSP response - no last chunk found - d connected: 1

'
ocsp.t TEST 10: validate good OCSP response - status code ok got: ''
expected: '200'
ocsp.t TEST 10: validate good OCSP response - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 4: get OCSP responder (issuer cert not next to the leaf cert) '
ocsp.t TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - no last chunk found - d connected: 1

'
ocsp.t TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - status code ok got: ''
expected: '200'
ocsp.t TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 1: get OCSP responder (good case) '
ocsp.t TEST 1: get OCSP responder (good case) - no last chunk found - d connected: 1

'
ocsp.t TEST 1: get OCSP responder (good case) - status code ok got: ''
expected: '200'
ocsp.t TEST 1: get OCSP responder (good case) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert '
ocsp.t TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert - no last chunk found - d connected: 1

'
ocsp.t TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert - status code ok got: ''
expected: '200'
ocsp.t TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 2: get OCSP responder (not found) '
ocsp.t TEST 2: get OCSP responder (not found) - no last chunk found - d connected: 1

'
ocsp.t TEST 2: get OCSP responder (not found) - status code ok got: ''
expected: '200'
ocsp.t TEST 2: get OCSP responder (not found) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 12: validate good OCSP response - no certs in response '
ocsp.t TEST 12: validate good OCSP response - no certs in response - no last chunk found - d connected: 1

'
ocsp.t TEST 12: validate good OCSP response - no certs in response - status code ok got: ''
expected: '200'
ocsp.t TEST 12: validate good OCSP response - no certs in response - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 3: get OCSP responder (no issuer cert at all) '
ocsp.t TEST 3: get OCSP responder (no issuer cert at all) - no last chunk found - d connected: 1

'
ocsp.t TEST 3: get OCSP responder (no issuer cert at all) - status code ok got: ''
expected: '200'
ocsp.t TEST 3: get OCSP responder (no issuer cert at all) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 9: create OCSP request (no issuer cert in the chain) '
ocsp.t TEST 9: create OCSP request (no issuer cert in the chain) - no last chunk found - d connected: 1

'
ocsp.t TEST 9: create OCSP request (no issuer cert in the chain) - status code ok got: ''
expected: '200'
ocsp.t TEST 9: create OCSP request (no issuer cert in the chain) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 11: fail to validate OCSP response - no issuer cert '
ocsp.t TEST 11: fail to validate OCSP response - no issuer cert - no last chunk found - d connected: 1

'
ocsp.t TEST 11: fail to validate OCSP response - no issuer cert - status code ok got: ''
expected: '200'
ocsp.t TEST 11: fail to validate OCSP response - no issuer cert - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 7: create OCSP request (buffer too small) '
ocsp.t TEST 7: create OCSP request (buffer too small) - no last chunk found - d connected: 1

'
ocsp.t TEST 7: create OCSP request (buffer too small) - status code ok got: ''
expected: '200'
ocsp.t TEST 7: create OCSP request (buffer too small) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
ocsp.t ERROR: client socket timed out - TEST 5: get OCSP responder (truncated) '
ocsp.t TEST 5: get OCSP responder (truncated) - no last chunk found - d connected: 1

'
ocsp.t TEST 5: get OCSP responder (truncated) - status code ok got: ''
expected: '200'
ocsp.t TEST 5: get OCSP responder (truncated) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
'
pipe-multi-workers.t nginx: [emerg] reuseport is not supported on this platform, ignored in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:53
pipe-stdin.t TEST 11: write process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
-stdout: ok
+stdout err: timeout
-stderr err: closed
+stderr err: timeout
'
pipe-stdin.t TEST 11: write process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
-stdout: ok
+stdout err: timeout
-stderr err: closed
+stderr err: timeout
'
pipe-stdout.t ERROR: client socket timed out - TEST 30: user case with read and wait '
pipe-stdout.t TEST 30: user case with read and wait - status code ok got: ''
expected: '200'
pipe-stdout.t TEST 30: user case with read and wait - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-ok
-exit
'
re-sub.t TEST 5: replace template + submatches (exceeding buffers) - status code ok got: ''
expected: '200'
re-sub.t TEST 5: replace template + submatches (exceeding buffers) - status code ok got: ''
expected: '200'
shdict.t TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 0, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
shdict.t TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 1, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
shdict.t TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 0, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
shdict.t TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 1, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
shdict.t TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 0, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
shdict.t TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 1, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
ssl-client-hello.t ERROR: client socket timed out - TEST 5: dynamically set ssl protocol - allow TLSv1.2 '
ssl-client-hello.t TEST 5: dynamically set ssl protocol - allow TLSv1.2 - no last chunk found - d connected: 1

'
ssl-client-hello.t TEST 5: dynamically set ssl protocol - allow TLSv1.2 - status code ok got: ''
expected: '200'
ssl-client-hello.t TEST 5: dynamically set ssl protocol - allow TLSv1.2 - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl-client-hello.t TEST 5: dynamically set ssl protocol - allow TLSv1.2 - pattern "(?^:SSL: TLSv1.2, cipher:)" should match a line in error.log (req 0)
ssl-client-hello.t ERROR: client socket timed out - TEST 1: read SNI name via ssl.clienthello.get_client_hello_server_name() '
ssl-client-hello.t TEST 1: read SNI name via ssl.clienthello.get_client_hello_server_name() - no last chunk found - d connected: 1

'
ssl-client-hello.t TEST 1: read SNI name via ssl.clienthello.get_client_hello_server_name() - status code ok got: ''
expected: '200'
ssl-client-hello.t TEST 1: read SNI name via ssl.clienthello.get_client_hello_server_name() - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl-client-hello.t ERROR: client socket timed out - TEST 2: read SNI name via ssl.clienthello.get_client_hello_server_name() when no SNI name specified '
ssl-client-hello.t TEST 2: read SNI name via ssl.clienthello.get_client_hello_server_name() when no SNI name specified - no last chunk found - d connected: 1

'
ssl-client-hello.t TEST 2: read SNI name via ssl.clienthello.get_client_hello_server_name() when no SNI name specified - status code ok got: ''
expected: '200'
ssl-client-hello.t TEST 2: read SNI name via ssl.clienthello.get_client_hello_server_name() when no SNI name specified - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl-client-hello.t ERROR: client socket timed out - TEST 4: read SNI name via ssl.clienthello.get_client_hello_ext() when no SNI name specified '
ssl-client-hello.t TEST 4: read SNI name via ssl.clienthello.get_client_hello_ext() when no SNI name specified - no last chunk found - d connected: 1

'
ssl-client-hello.t TEST 4: read SNI name via ssl.clienthello.get_client_hello_ext() when no SNI name specified - status code ok got: ''
expected: '200'
ssl-client-hello.t TEST 4: read SNI name via ssl.clienthello.get_client_hello_ext() when no SNI name specified - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl-client-hello.t ERROR: client socket timed out - TEST 3: read SNI name via ssl.clienthello.get_client_hello_ext() '
ssl-client-hello.t TEST 3: read SNI name via ssl.clienthello.get_client_hello_ext() - no last chunk found - d connected: 1

'
ssl-client-hello.t TEST 3: read SNI name via ssl.clienthello.get_client_hello_ext() - status code ok got: ''
expected: '200'
ssl-client-hello.t TEST 3: read SNI name via ssl.clienthello.get_client_hello_ext() - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl-client-hello.t ERROR: client socket timed out - TEST 6: dynamically set ssl protocol - allow TLSv1.3 '
ssl-client-hello.t TEST 6: dynamically set ssl protocol - allow TLSv1.3 - no last chunk found - d connected: 1

'
ssl-client-hello.t TEST 6: dynamically set ssl protocol - allow TLSv1.3 - status code ok got: ''
expected: '200'
ssl-client-hello.t TEST 6: dynamically set ssl protocol - allow TLSv1.3 - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl-client-hello.t TEST 6: dynamically set ssl protocol - allow TLSv1.3 - pattern "(?^:SSL: TLSv1.3, cipher:)" should match a line in error.log (req 0)
ssl-session-fetch.t ERROR: client socket timed out - TEST 3: store new session, and resume it '
ssl-session-fetch.t TEST 3: store new session, and resume it - no last chunk found - d connected: 1

'
ssl-session-fetch.t TEST 3: store new session, and resume it - status code ok got: ''
expected: '200'
ssl-session-fetch.t TEST 3: store new session, and resume it - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-fetch.t ERROR: client socket timed out - TEST 4: attempt to resume a corrupted session '
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - no last chunk found - d connected: 1

'
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - status code ok got: ''
expected: '200'
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-fetch.t ERROR: client socket timed out - TEST 2: attempt to fetch new session in lua_ctx during resumption. '
ssl-session-fetch.t TEST 2: attempt to fetch new session in lua_ctx during resumption. - no last chunk found - d connected: 1

'
ssl-session-fetch.t TEST 2: attempt to fetch new session in lua_ctx during resumption. - status code ok got: ''
expected: '200'
ssl-session-fetch.t TEST 2: attempt to fetch new session in lua_ctx during resumption. - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-fetch.t ERROR: client socket timed out - TEST 1: get resume session id serialized '
ssl-session-fetch.t TEST 1: get resume session id serialized - no last chunk found - d connected: 1

'
ssl-session-fetch.t TEST 1: get resume session id serialized - status code ok got: ''
expected: '200'
ssl-session-fetch.t TEST 1: get resume session id serialized - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-fetch.t ERROR: client socket timed out - TEST 6: store new session, and resume it, avoid memory leak when calling repeatly '
ssl-session-fetch.t TEST 6: store new session, and resume it, avoid memory leak when calling repeatly - no last chunk found - d connected: 1

'
ssl-session-fetch.t TEST 6: store new session, and resume it, avoid memory leak when calling repeatly - status code ok got: ''
expected: '200'
ssl-session-fetch.t TEST 6: store new session, and resume it, avoid memory leak when calling repeatly - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-store.t ERROR: client socket timed out - TEST 2: get new session id serialized '
ssl-session-store.t TEST 2: get new session id serialized - no last chunk found - d connected: 1

'
ssl-session-store.t TEST 2: get new session id serialized - status code ok got: ''
expected: '200'
ssl-session-store.t TEST 2: get new session id serialized - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-store.t ERROR: client socket timed out - TEST 3: store the session via timer to memcached '
ssl-session-store.t TEST 3: store the session via timer to memcached - no last chunk found - d connected: 1

'
ssl-session-store.t TEST 3: store the session via timer to memcached - status code ok got: ''
expected: '200'
ssl-session-store.t TEST 3: store the session via timer to memcached - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-store.t ERROR: client socket timed out - TEST 1: get new session serialized '
ssl-session-store.t TEST 1: get new session serialized - no last chunk found - d connected: 1

'
ssl-session-store.t TEST 1: get new session serialized - status code ok got: ''
expected: '200'
ssl-session-store.t TEST 1: get new session serialized - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
close: 1 nil
'
ssl-session-store.t TEST 1: get new session serialized - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:09:54 [error] 21086\#21086: *38 lua tcp socket read timed out, context: ngx.timer, client: unix:, server: unix:/home/ec2-user/git/lua-resty-core/t/servroot/html/nginx.sock" (req 0) 2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua tcp socket handle read error
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua tcp socket waking up the current request
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua tcp operation done, resuming lua thread
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua tcp socket calling prepare retvals handler 0817C356, u:0505D578
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua tcp socket receive return value handler
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua run thread, top:0 c:1
2023/12/28 11:09:54 [error] 21086\#21086: *38 [lua] ssl_session_store_by_lua(nginx.conf:26):24: failed to receive memc reply: timeout, context: ngx.timer, client: unix:, server: unix:/home/ec2-user/git/lua-resty-core/t/servroot/html/nginx.sock
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua resume returned 0
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua light thread ended normally
'
ssl-session-store.t TEST 1: get new session serialized - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:09:54 [error] 21086\#21086: *38 [lua] ssl_session_store_by_lua(nginx.conf:26):24: failed to receive memc reply: timeout, context: ngx.timer, client: unix:, server: unix:/home/ec2-user/git/lua-resty-core/t/servroot/html/nginx.sock" (req 0) 2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua resume returned 0
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua light thread ended normally
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua deleting light thread 050582E8 (ref 2)
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua caching unused lua thread 050582E8 (ref 2)
2023/12/28 11:09:54 [debug] 21086\#21086: *38 lua run thread returned 0
2023/12/28 11:09:54 [debug] 21086\#21086: *38 http lua finalize fake request: 0, a:1, c:1
2023/12/28 11:09:54 [debug] 21086\#21086: *38 http lua fake request count:1
2023/12/28 11:09:54 [debug] 21086\#21086: *38 http lua close fake request
2023/12/28 11:09:54 [debug] 21086\#21086: *38 cleanup lua tcp socket request: ""
'
ssl-session-store.t TEST 1: get new session serialized - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:09:56 [error] 21086\#21086: *44 lua tcp socket read timed out, context: ngx.timer, client: unix:, server: unix:/home/ec2-user/git/lua-resty-core/t/servroot/html/nginx.sock" (req 1) 2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua tcp socket handle read error
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua tcp socket waking up the current request
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua tcp operation done, resuming lua thread
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua tcp socket calling prepare retvals handler 0817C356, u:050FA140
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua tcp socket receive return value handler
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua run thread, top:0 c:1
2023/12/28 11:09:56 [error] 21086\#21086: *44 [lua] ssl_session_store_by_lua(nginx.conf:26):24: failed to receive memc reply: timeout, context: ngx.timer, client: unix:, server: unix:/home/ec2-user/git/lua-resty-core/t/servroot/html/nginx.sock
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua resume returned 0
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua light thread ended normally
'
ssl-session-store.t TEST 1: get new session serialized - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:09:56 [error] 21086\#21086: *44 [lua] ssl_session_store_by_lua(nginx.conf:26):24: failed to receive memc reply: timeout, context: ngx.timer, client: unix:, server: unix:/home/ec2-user/git/lua-resty-core/t/servroot/html/nginx.sock" (req 1) 2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua resume returned 0
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua light thread ended normally
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua deleting light thread 050F4F50 (ref 3)
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua caching unused lua thread 050F4F50 (ref 3)
2023/12/28 11:09:56 [debug] 21086\#21086: *44 lua run thread returned 0
2023/12/28 11:09:56 [debug] 21086\#21086: *44 http lua finalize fake request: 0, a:1, c:1
2023/12/28 11:09:56 [debug] 21086\#21086: *44 http lua fake request count:1
2023/12/28 11:09:56 [debug] 21086\#21086: *44 http lua close fake request
2023/12/28 11:09:56 [debug] 21086\#21086: *44 cleanup lua tcp socket request: ""
'
ssl.t ERROR: client socket timed out - TEST 22: tls version - TLSv1.3 '
ssl.t TEST 22: tls version - TLSv1.3 - no last chunk found - d connected: 1

'
ssl.t TEST 22: tls version - TLSv1.3 - status code ok got: ''
expected: '200'
ssl.t TEST 22: tls version - TLSv1.3 - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: boolean
'
ssl.t ERROR: client socket timed out - TEST 2: set DER cert and private key '
ssl.t TEST 2: set DER cert and private key - no last chunk found - d connected: 1

'
ssl.t TEST 2: set DER cert and private key - status code ok got: ''
expected: '200'
ssl.t TEST 2: set DER cert and private key - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 11: tls version - TLSv1 '
ssl.t TEST 11: tls version - TLSv1 - no last chunk found - d connected: 1

'
ssl.t TEST 11: tls version - TLSv1 - status code ok got: ''
expected: '200'
ssl.t TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: boolean
'
ssl.t ERROR: client socket timed out - TEST 27: read server port via ssl.server_port() with unix domain socket '
ssl.t TEST 27: read server port via ssl.server_port() with unix domain socket - no last chunk found - d connected: 1

'
ssl.t TEST 27: read server port via ssl.server_port() with unix domain socket - status code ok got: ''
expected: '200'
ssl.t TEST 27: read server port via ssl.server_port() with unix domain socket - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 3: read SNI name via ssl.server_name() '
ssl.t TEST 3: read SNI name via ssl.server_name() - no last chunk found - d connected: 1

'
ssl.t TEST 3: read SNI name via ssl.server_name() - status code ok got: ''
expected: '200'
ssl.t TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 26: read server port via ssl.server_port() with ipv4 '
ssl.t TEST 26: read server port via ssl.server_port() with ipv4 - no last chunk found - d connected: 1

'
ssl.t TEST 26: read server port via ssl.server_port() with ipv4 - status code ok got: ''
expected: '200'
ssl.t TEST 26: read server port via ssl.server_port() with ipv4 - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 24: verify client without CA certificates '
ssl.t TEST 24: verify client without CA certificates - status code ok got: ''
expected: '200'
ssl.t TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'FAILED:self signed certificate
'
ssl.t ERROR: client socket timed out - TEST 24: verify client without CA certificates '
ssl.t TEST 24: verify client without CA certificates - status code ok got: ''
expected: '200'
ssl.t TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'FAILED:self signed certificate
'
ssl.t ERROR: client socket timed out - TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) '
ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - no last chunk found - d connected: 1

'
ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - status code ok got: ''
expected: '200'
ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) '
ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - no last chunk found - d connected: 1

'
ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - status code ok got: ''
expected: '200'
ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 12: tls version - TLSv1.1 '
ssl.t TEST 12: tls version - TLSv1.1 - no last chunk found - d connected: 1

'
ssl.t TEST 12: tls version - TLSv1.1 - status code ok got: ''
expected: '200'
ssl.t TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: boolean
'
ssl.t ERROR: client socket timed out - TEST 20: read client addr via ssl.raw_client_addr() '
ssl.t TEST 20: read client addr via ssl.raw_client_addr() - no last chunk found - d connected: 1

'
ssl.t TEST 20: read client addr via ssl.raw_client_addr() - status code ok got: ''
expected: '200'
ssl.t TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) '
ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - no last chunk found - d connected: 1

'
ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - status code ok got: ''
expected: '200'
ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
ssl.t ERROR: client socket timed out - TEST 13: tls version - TLSv1.2 '
ssl.t TEST 13: tls version - TLSv1.2 - no last chunk found - d connected: 1

'
ssl.t TEST 13: tls version - TLSv1.2 - status code ok got: ''
expected: '200'
ssl.t TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: boolean
'
ssl.t ERROR: client socket timed out - TEST 14: ngx.semaphore in ssl_certificate_by_lua* '
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - no last chunk found - d connected: 1

'
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - status code ok got: ''
expected: '200'
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: boolean
'
ssl.t ERROR: client socket timed out - TEST 23: verify client with CA certificates '
ssl.t TEST 23: verify client with CA certificates - status code ok got: ''
expected: '200'
ssl.t TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'SUCCESS
'
ssl.t ERROR: client socket timed out - TEST 23: verify client with CA certificates '
ssl.t TEST 23: verify client with CA certificates - status code ok got: ''
expected: '200'
ssl.t TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'SUCCESS
'
ssl.t ERROR: client socket timed out - TEST 25: verify client but client provides no certificate '
ssl.t TEST 25: verify client but client provides no certificate - status code ok got: ''
expected: '200'
ssl.t TEST 25: verify client but client provides no certificate - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'NONE
'
ssl.t ERROR: client socket timed out - TEST 4: read SNI name via ssl.server_name() when no SNI name specified '
ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - no last chunk found - d connected: 1

'
ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - status code ok got: ''
expected: '200'
ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 0, req 0) got: undef
expected: 'connected: 1
ssl handshake: cdata
sent http request: 56 bytes.
received: HTTP/1.1 201 Created
received: Server: nginx
received: Content-Type: text/plain
received: Content-Length: 4
received: Connection: close
received:
received: foo
close: 1 nil
'
stream/ctx.t ERROR: client socket timed out - TEST 4: ngx.ctx in ssl_client_hello_by_lua '
stream/ctx.t TEST 4: ngx.ctx in ssl_client_hello_by_lua - status code ok got: ''
expected: '200'
stream/ctx.t TEST 4: ngx.ctx in ssl_client_hello_by_lua - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-received: 42
-received: 1
'
stream/ctx.t TEST 4: ngx.ctx in ssl_client_hello_by_lua - grep_error_log_out (req 0) @@ -1,2 +0,0 @@
-lua release ngx.ctx at ref 2
-lua release ngx.ctx at ref 1
'
stream/ctx.t ERROR: client socket timed out - TEST 1: ngx.ctx in ssl_certificate_by_lua '
stream/ctx.t TEST 1: ngx.ctx in ssl_certificate_by_lua - status code ok got: ''
expected: '200'
stream/ctx.t TEST 1: ngx.ctx in ssl_certificate_by_lua - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-received: 42
-received: 1
'
stream/ctx.t TEST 1: ngx.ctx in ssl_certificate_by_lua - grep_error_log_out (req 0) @@ -1,2 +0,0 @@
-lua release ngx.ctx at ref 2
-lua release ngx.ctx at ref 1
'
stream/ctx.t ERROR: client socket timed out - TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) '
stream/ctx.t TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) - status code ok got: ''
expected: '200'
stream/ctx.t TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'received: 1
'
stream/re-opt.t TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 0, req 0) got: 'from: 1
to: 1563
'
expected: 'error: pcre_exec() failed: -27
'
stream/re-opt.t TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 1, req 0) got: 'from: 1
to: 1563
'
expected: 'error: pcre_exec() failed: -27
'
stream/re-sub.t ERROR: client socket timed out - TEST 5: replace template + submatches (exceeding buffers) '
stream/re-sub.t TEST 5: replace template + submatches (exceeding buffers) - status code ok got: ''
expected: '200'
stream/re-sub.t TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd
-n: 2048
'
stream/re-sub.t ERROR: client socket timed out - TEST 5: replace template + submatches (exceeding buffers) '
stream/re-sub.t TEST 5: replace template + submatches (exceeding buffers) - status code ok got: ''
expected: '200'
stream/re-sub.t TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +0,0 @@
-s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd
-n: 2048
'
stream/shdict.t TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 0, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
stream/shdict.t TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 1, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
stream/shdict.t TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 0, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
stream/shdict.t TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 1, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
stream/shdict.t TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 0, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
stream/shdict.t TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 1, req 0) got: 'ttl: 0
'
expected: 'ttl: 2147483648
'
stream/ssl.t ERROR: client socket timed out - TEST 20: read client addr via ssl.raw_client_addr() '
stream/ssl.t TEST 20: read client addr via ssl.raw_client_addr() - status code ok got: ''
expected: '200'
stream/ssl.t TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
stream/ssl.t ERROR: client socket timed out - TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) '
stream/ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - status code ok got: ''
expected: '200'
stream/ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
stream/ssl.t ERROR: client socket timed out - TEST 23: verify client with CA certificates '
stream/ssl.t TEST 23: verify client with CA certificates - status code ok got: ''
expected: '200'
stream/ssl.t TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'SUCCESS
'
stream/ssl.t ERROR: client socket timed out - TEST 23: verify client with CA certificates '
stream/ssl.t TEST 23: verify client with CA certificates - status code ok got: ''
expected: '200'
stream/ssl.t TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'SUCCESS
'
stream/ssl.t ERROR: client socket timed out - TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) '
stream/ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - status code ok got: ''
expected: '200'
stream/ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
stream/ssl.t ERROR: client socket timed out - TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) '
stream/ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - status code ok got: ''
expected: '200'
stream/ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
stream/ssl.t ERROR: client socket timed out - TEST 3: read SNI name via ssl.server_name() '
stream/ssl.t TEST 3: read SNI name via ssl.server_name() - status code ok got: ''
expected: '200'
stream/ssl.t TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
stream/ssl.t ERROR: client socket timed out - TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) '
stream/ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - status code ok got: ''
expected: '200'
stream/ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
stream/ssl.t ERROR: client socket timed out - TEST 4: read SNI name via ssl.server_name() when no SNI name specified '
stream/ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - status code ok got: ''
expected: '200'
stream/ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
stream/ssl.t ERROR: client socket timed out - TEST 11: tls version - TLSv1 '
stream/ssl.t TEST 11: tls version - TLSv1 - status code ok got: ''
expected: '200'
stream/ssl.t TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-connected: 1
-ssl handshake: boolean
'
stream/ssl.t ERROR: client socket timed out - TEST 25: verify client but client provides no certificate '
stream/ssl.t TEST 25: verify client but client provides no certificate - status code ok got: ''
expected: '200'
stream/ssl.t TEST 25: verify client but client provides no certificate - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'NONE
'
stream/ssl.t ERROR: client socket timed out - TEST 12: tls version - TLSv1.1 '
stream/ssl.t TEST 12: tls version - TLSv1.1 - status code ok got: ''
expected: '200'
stream/ssl.t TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-connected: 1
-ssl handshake: boolean
'
stream/ssl.t ERROR: client socket timed out - TEST 24: verify client without CA certificates '
stream/ssl.t TEST 24: verify client without CA certificates - status code ok got: ''
expected: '200'
stream/ssl.t TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'FAILED:self signed certificate
'
stream/ssl.t ERROR: client socket timed out - TEST 24: verify client without CA certificates '
stream/ssl.t TEST 24: verify client without CA certificates - status code ok got: ''
expected: '200'
stream/ssl.t TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'FAILED:self signed certificate
'
stream/ssl.t ERROR: client socket timed out - TEST 22: tls version - TLSv1.3 '
stream/ssl.t TEST 22: tls version - TLSv1.3 - status code ok got: ''
expected: '200'
stream/ssl.t TEST 22: tls version - TLSv1.3 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-connected: 1
-ssl handshake: boolean
'
stream/ssl.t ERROR: client socket timed out - TEST 22: tls version - TLSv1.3 '
stream/ssl.t TEST 22: tls version - TLSv1.3 - status code ok got: ''
expected: '200'
stream/ssl.t TEST 22: tls version - TLSv1.3 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +0,0 @@
-connected: 1
-ssl handshake: boolean
'
stream/ssl.t ERROR: client socket timed out - TEST 14: ngx.semaphore in ssl_certificate_by_lua* '
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - status code ok got: ''
expected: '200'
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-connected: 1
-ssl handshake: boolean
'
stream/ssl.t ERROR: client socket timed out - TEST 13: tls version - TLSv1.2 '
stream/ssl.t TEST 13: tls version - TLSv1.2 - status code ok got: ''
expected: '200'
stream/ssl.t TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-connected: 1
-ssl handshake: boolean
'
stream/ssl.t ERROR: client socket timed out - TEST 2: set DER cert and private key '
stream/ssl.t TEST 2: set DER cert and private key - status code ok got: ''
expected: '200'
stream/ssl.t TEST 2: set DER cert and private key - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +0,0 @@
-connected: 1
-ssl handshake: userdata
-received: it works!
-close: 1 nil
'
time.t TEST 7: ngx.cookie_time() - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
Thu, 18-Nov-10 11:27:35 GMT
-Sun, 18-Sep-2039 23:06:40 GMT
+Thu, 01-Jan-70 00:00:00 GMT
'
time.t TEST 7: ngx.cookie_time() - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
Thu, 18-Nov-10 11:27:35 GMT
-Sun, 18-Sep-2039 23:06:40 GMT
+Thu, 01-Jan-70 00:00:00 GMT
'
worker.t TEST 5: ngx.worker.pids - response_body_like - response is expected (worker pid: 5057 worker pids is wrong. worker pid is correct.) 'worker pid: 5057
worker pids is wrong.
worker pid is correct.
'
doesn't match '(?^s:worker pid: \d+
worker pid is correct\.
)'
worker.t TEST 5: ngx.worker.pids - response_body_like - response is expected (worker pid: 5057 worker pids is wrong. worker pid is correct.) 'worker pid: 5057
worker pids is wrong.
worker pid is correct.
'
doesn't match '(?^s:worker pid: \d+
worker pid is correct\.
)'

Expected Failures

File Name Details
errlog.t TEST 21: multi-line error log - response_body_like - response is expected (log lines: \#2 log level:6 log body:2023/12/28 10:49:37 [notice] 30836\#30836: start worker processes log level:4 log body:2023/12/28 10:49:38 [error] 30855\#30855: *1 [lua] access_by_lua(nginx.conf:58):8: --> new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'log lines: #2
log level:6
log body:2023/12/28 10:49:37 [notice] 30836#30836: start worker processes
log level:4
log body:2023/12/28 10:49:38 [error] 30855#30855: *1 [lua] access_by_lua(nginx.conf:58):8: -->
new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:\Alog lines: #1
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: -->
new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
\z)'
errlog.t TEST 20: fetch a few and generate a few, then fetch again (not overflown again) - response_body_like - response is expected (msg count: 3 log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:49:40 [warn] 30864\#30864: *27 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" msg count: 3 log level:5 log body:2023/12/28 10:49:40 [warn] 30864\#30864: *27 [lua] access_by_lua(nginx.conf:58):10: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:49:40 [warn] 30864\#30864: *27 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *27 [lua] content_by_lua(nginx.conf:72):13: howdy, something new!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *27 [lua] content_by_lua(nginx.conf:72):14: howdy, something even newer!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'msg count: 3
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:49:40 [warn] 30864#30864: *27 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:5
log body:2023/12/28 10:49:40 [warn] 30864#30864: *27 [lua] access_by_lua(nginx.conf:58):10: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:49:40 [warn] 30864#30864: *27 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *27 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *27 [lua] content_by_lua(nginx.conf:72):13: howdy, something new!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *27 [lua] content_by_lua(nginx.conf:72):14: howdy, something even newer!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:\Amsg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something new!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something even newer!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
\z)'
errlog.t TEST 20: fetch a few and generate a few, then fetch again (not overflown again) - response_body_like - response is expected (msg count: 3 log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:49:40 [warn] 30864\#30864: *28 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" msg count: 3 log level:5 log body:2023/12/28 10:49:40 [warn] 30864\#30864: *28 [lua] access_by_lua(nginx.conf:58):10: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:49:40 [warn] 30864\#30864: *28 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *28 [lua] content_by_lua(nginx.conf:72):13: howdy, something new!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:49:40 [error] 30864\#30864: *28 [lua] content_by_lua(nginx.conf:72):14: howdy, something even newer!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'msg count: 3
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:49:40 [warn] 30864#30864: *28 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:5
log body:2023/12/28 10:49:40 [warn] 30864#30864: *28 [lua] access_by_lua(nginx.conf:58):10: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:49:40 [warn] 30864#30864: *28 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *28 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *28 [lua] content_by_lua(nginx.conf:72):13: howdy, something new!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:49:40 [error] 30864#30864: *28 [lua] content_by_lua(nginx.conf:72):14: howdy, something even newer!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:\Amsg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something new!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something even newer!, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
\z)'
errlog.t TEST 11: filter log by level(ngx.INFO) - response_body - response is expected (repeated req 0, req 0) got: 'log lines:10
'
expected: 'log lines:3
'
errlog.t TEST 11: filter log by level(ngx.INFO) - response_body - response is expected (repeated req 1, req 0) got: 'log lines:10
'
expected: 'log lines:3
'
errlog.t TEST 13: filter log by level(ngx.CRIT) - response_body - response is expected (repeated req 0, req 0) got: 'log lines:10
'
expected: 'log lines:0
'
errlog.t TEST 13: filter log by level(ngx.CRIT) - response_body - response is expected (repeated req 1, req 0) got: 'log lines:10
'
expected: 'log lines:0
'
errlog.t TEST 31: ringbuf sentinel bug2 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
log lines: \#18
-log lines: \#8
+log lines: \#1
'
errlog.t TEST 31: ringbuf sentinel bug2 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
log lines: \#18
-log lines: \#8
+log lines: \#9
'
errlog.t TEST 30: ringbuf sentinel bug1 - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,3 @@
log lines: \#2
-AAA
+aaa
aaa
'
errlog.t nginx: [emerg] invalid capture error log size "3k", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25
errlog.t TEST 22: user-supplied Lua table to hold the result (get one log + no log) - response_body_like - response is expected (maybe log lines: \#10 log level:6 log body:2023/12/28 10:50:00 [notice] 31354\#31354: start worker processes log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *33 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *34 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *35 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *36 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *37 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *38 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *39 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *40 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *41 client 127.0.0.1 closed keepalive connection end maybe log lines: \#10 log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *42 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *43 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *44 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *45 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *46 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *47 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *48 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *49 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *50 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *51 client 127.0.0.1 closed keepalive connection end) 'maybe log lines: #10
log level:6
log body:2023/12/28 10:50:00 [notice] 31354#31354: start worker processes
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *33 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *34 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *35 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *36 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *37 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *38 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *39 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *40 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *41 client 127.0.0.1 closed keepalive connection
end
maybe log lines: #10
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *42 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *43 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *44 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *45 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *46 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *47 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *48 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *49 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *50 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *51 client 127.0.0.1 closed keepalive connection
end
'
doesn't match '(?^s:\Amaybe log lines: #1
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: -->
new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
end
maybe log lines: #1
end
\z)'
errlog.t TEST 22: user-supplied Lua table to hold the result (get one log + no log) - response_body_like - response is expected (maybe log lines: \#3 log level:7 log body:2023/12/28 10:50:01 [info] 31418\#31418: *52 client 127.0.0.1 closed keepalive connection log level:4 log body:2023/12/28 10:50:01 [error] 31418\#31418: *53 [lua] access_by_lua(nginx.conf:58):8: --> new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:02 [error] 31418\#31418: *54 [lua] access_by_lua(nginx.conf:58):8: --> new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" end maybe log lines: \#3 end) 'maybe log lines: #3
log level:7
log body:2023/12/28 10:50:01 [info] 31418#31418: *52 client 127.0.0.1 closed keepalive connection
log level:4
log body:2023/12/28 10:50:01 [error] 31418#31418: *53 [lua] access_by_lua(nginx.conf:58):8: -->
new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:02 [error] 31418#31418: *54 [lua] access_by_lua(nginx.conf:58):8: -->
new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
end
maybe log lines: #3
end
'
doesn't match '(?^s:\Amaybe log lines: #1
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: -->
new line, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
end
maybe log lines: #1
end
\z)'
errlog.t nginx: [emerg] invalid number of arguments in "lua_capture_error_log" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25
errlog.t TEST 16: check the captured error log body - response_body_like - response is expected (log level:6 log body:2023/12/28 10:50:05 [notice] 31458\#31458: start worker processes log level:7 log body:2023/12/28 10:50:05 [info] 31486\#31486: *7 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:05 [info] 31486\#31486: *8 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:05 [info] 31486\#31486: *9 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:05 [info] 31486\#31486: *10 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *11 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *12 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *13 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *14 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *15 client 127.0.0.1 closed keepalive connection) 'log level:6
log body:2023/12/28 10:50:05 [notice] 31458#31458: start worker processes
log level:7
log body:2023/12/28 10:50:05 [info] 31486#31486: *7 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:05 [info] 31486#31486: *8 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:05 [info] 31486#31486: *9 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:05 [info] 31486#31486: *10 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *11 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *12 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *13 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *14 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *15 client 127.0.0.1 closed keepalive connection
'
doesn't match '(?^s:log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: -->2, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: -->3, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
)'
errlog.t TEST 16: check the captured error log body - response_body_like - response is expected (log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *16 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *17 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *18 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *19 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *20 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *21 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *22 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *23 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *24 client 127.0.0.1 closed keepalive connection log level:7 log body:2023/12/28 10:50:06 [info] 31486\#31486: *25 client 127.0.0.1 closed keepalive connection) 'log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *16 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *17 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *18 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *19 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *20 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *21 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *22 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *23 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *24 client 127.0.0.1 closed keepalive connection
log level:7
log body:2023/12/28 10:50:06 [info] 31486#31486: *25 client 127.0.0.1 closed keepalive connection
'
doesn't match '(?^s:log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: -->2, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: -->3, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
)'
errlog.t TEST 29: ringbuf overflow bug - response_body_like - response is expected (log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********22, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********23, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********24, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********25, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********26, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********27, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********28, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********29, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********30, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.129 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********31, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********22, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********23, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********24, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********25, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********26, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********27, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********28, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********29, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********30, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.129
log body: 2023/12/28 10:50:10 [error] 31600#31600: *105 [lua] content_by_lua(nginx.conf:67):8: **********31, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:log level: 4
log time: \d+(?:\.\d+)?
log body: \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: \*\*\*\*\*\*\*\*\*\*39, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: \d{10}(?:\.\d+)?
log body: \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: \*\*\*\*\*\*\*\*\*\*40, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost")'
errlog.t TEST 29: ringbuf overflow bug - response_body_like - response is expected (log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********30, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********31, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********32, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********33, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********34, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********35, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********36, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********37, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********38, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level: 4 log time: 1703760610.633 log body: 2023/12/28 10:50:10 [error] 31600\#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********39, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********30, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********31, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********32, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********33, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********34, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********35, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********36, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********37, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********38, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: 1703760610.633
log body: 2023/12/28 10:50:10 [error] 31600#31600: *106 [lua] content_by_lua(nginx.conf:67):8: **********39, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:log level: 4
log time: \d+(?:\.\d+)?
log body: \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: \*\*\*\*\*\*\*\*\*\*39, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level: 4
log time: \d{10}(?:\.\d+)?
log body: \d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: \*\*\*\*\*\*\*\*\*\*40, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost")'
errlog.t TEST 12: filter log by level(ngx.WARN) - response_body - response is expected (repeated req 0, req 0) got: 'log lines:10
'
expected: 'log lines:2
'
errlog.t TEST 12: filter log by level(ngx.WARN) - response_body - response is expected (repeated req 1, req 0) got: 'log lines:10
'
expected: 'log lines:2
'
errlog.t TEST 19: fetch a few and generate a few, then fetch again (overflown again) - response_body_like - response is expected (msg count: 3 log level:4 log body:2023/12/28 10:50:16 [error] 31788\#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:16 [warn] 31788\#31788: *235 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:16 [error] 31788\#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" msg count: 3 log level:4 log body:2023/12/28 10:50:16 [error] 31788\#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:16 [warn] 31788\#31788: *235 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:16 [error] 31788\#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:16 [error] 31788\#31788: *235 [lua] content_by_lua(nginx.conf:72):14: --> 102, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:16 [error] 31788\#31788: *235 [lua] content_by_lua(nginx.conf:72):15: --> 103, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:16 [error] 31788\#31788: *235 [lua] content_by_lua(nginx.conf:72):16: --> 104, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'msg count: 3
log level:4
log body:2023/12/28 10:50:16 [error] 31788#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:16 [warn] 31788#31788: *235 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:16 [error] 31788#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:4
log body:2023/12/28 10:50:16 [error] 31788#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:16 [warn] 31788#31788: *235 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:16 [error] 31788#31788: *235 [lua] access_by_lua(nginx.conf:58):11: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:16 [error] 31788#31788: *235 [lua] content_by_lua(nginx.conf:72):14: --> 102, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:16 [error] 31788#31788: *235 [lua] content_by_lua(nginx.conf:72):15: --> 103, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:16 [error] 31788#31788: *235 [lua] content_by_lua(nginx.conf:72):16: --> 104, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:\Amsg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 102, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 103, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 104, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
\z)'
errlog.t TEST 19: fetch a few and generate a few, then fetch again (overflown again) - response_body_like - response is expected (msg count: 3 log level:4 log body:2023/12/28 10:50:17 [error] 31788\#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:17 [warn] 31788\#31788: *236 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:17 [error] 31788\#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" msg count: 3 log level:4 log body:2023/12/28 10:50:17 [error] 31788\#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:17 [warn] 31788\#31788: *236 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:17 [error] 31788\#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:17 [error] 31788\#31788: *236 [lua] content_by_lua(nginx.conf:72):14: --> 102, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:17 [error] 31788\#31788: *236 [lua] content_by_lua(nginx.conf:72):15: --> 103, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:17 [error] 31788\#31788: *236 [lua] content_by_lua(nginx.conf:72):16: --> 104, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'msg count: 3
log level:4
log body:2023/12/28 10:50:17 [error] 31788#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:17 [warn] 31788#31788: *236 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:17 [error] 31788#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:4
log body:2023/12/28 10:50:17 [error] 31788#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:17 [warn] 31788#31788: *236 [lua] access_by_lua(nginx.conf:58):10: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:17 [error] 31788#31788: *236 [lua] access_by_lua(nginx.conf:58):11: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:17 [error] 31788#31788: *236 [lua] content_by_lua(nginx.conf:72):14: --> 102, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:17 [error] 31788#31788: *236 [lua] content_by_lua(nginx.conf:72):15: --> 103, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:17 [error] 31788#31788: *236 [lua] content_by_lua(nginx.conf:72):16: --> 104, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:\Amsg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 90, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?access_by_lua\(nginx.conf:\d+\):\d+: --> 91, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 102, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 103, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 104, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
\z)'
errlog.t TEST 18: flood the capturing buffer (5k) - response_body_like - response is expected (log lines: \#25 log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:18 [warn] 31830\#31830: *261 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 99, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:18 [warn] 31830\#31830: *261 [lua] access_by_lua(nginx.conf:58):10: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'log lines: #25
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:18 [warn] 31830#31830: *261 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 99, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:18 [warn] 31830#31830: *261 [lua] access_by_lua(nginx.conf:58):10: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *261 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:\Alog lines: #26
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 99, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
\z)'
errlog.t TEST 18: flood the capturing buffer (5k) - response_body_like - response is expected (log lines: \#25 log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:18 [warn] 31830\#31830: *262 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 99, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:5 log body:2023/12/28 10:50:18 [warn] 31830\#31830: *262 [lua] access_by_lua(nginx.conf:58):10: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost" log level:4 log body:2023/12/28 10:50:18 [error] 31830\#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost") 'log lines: #25
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:18 [warn] 31830#31830: *262 [lua] access_by_lua(nginx.conf:58):10: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 99, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:2023/12/28 10:50:18 [warn] 31830#31830: *262 [lua] access_by_lua(nginx.conf:58):10: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:2023/12/28 10:50:18 [error] 31830#31830: *262 [lua] access_by_lua(nginx.conf:58):11: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
'
doesn't match '(?^s:\Alog lines: #26
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 99, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*access_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", host: "localhost"
\z)'
pipe-stdout.t TEST 33: read process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
-stdout: ok
+stdout err: timeout
stderr err: closed
'
pipe-stdout.t TEST 33: read process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
-stdout: ok
+stdout err: timeout
stderr err: closed
'
process-type-privileged-agent-connections.t nginx: [error] [lua] init_by_lua(nginx.conf:27):5: enable_privileged_agent failed: bad 'connections' argument: number expected and greater than 0
process-type-single.t TEST 1: sanity - response_body - response is expected (repeated req 0, req 0) got: "process type: worker\x{0a}"
length: 21
expected: "process type: single\x{0a}"
length: 21
strings begin to differ at char 15 (line 1 column 15)
process-type-single.t TEST 1: sanity - grep_error_log_out (req 0) '[TRACE 1 init_by_lua(nginx.conf:26):18 loop]
[TRACE 2 init_worker_by_lua(nginx.conf:50):4 loop]
[TRACE 2 content_by_lua(nginx.conf:76):4 loop]
process type in init_by_lua*: master
init_worker_by_lua(nginx.conf:50):10: process type: worker
'
doesn't match '(?^:\[TRACE\s+\d+ init_by_lua\(nginx.conf:\d+\):\d+ loop\]
\[TRACE\s+\d+ init_worker_by_lua\(nginx.conf:\d+\):\d+ loop\]
\[TRACE\s+\d+ content_by_lua\(nginx.conf:\d+\):4 loop\]
process type in init_by_lua\*: single
init_worker_by_lua\(nginx.conf:\d+\):10: process type: single
)'
process-type-single.t TEST 1: sanity - response_body - response is expected (repeated req 1, req 0) got: "process type: worker\x{0a}"
length: 21
expected: "process type: single\x{0a}"
length: 21
strings begin to differ at char 15 (line 1 column 15)
process-type-single.t TEST 1: sanity - grep_error_log_out (req 1) '[TRACE 1 init_by_lua(nginx.conf:26):18 loop]
[TRACE 2 init_worker_by_lua(nginx.conf:50):4 loop]
[TRACE 2 content_by_lua(nginx.conf:76):4 loop]
process type in init_by_lua*: master
init_worker_by_lua(nginx.conf:50):10: process type: worker
'
doesn't match '(?^:\[TRACE\s+\d+ init_by_lua\(nginx.conf:\d+\):\d+ loop\]
\[TRACE\s+\d+ init_worker_by_lua\(nginx.conf:\d+\):\d+ loop\]
\[TRACE\s+\d+ content_by_lua\(nginx.conf:\d+\):4 loop\]
process type in init_by_lua\*: single
init_worker_by_lua\(nginx.conf:\d+\):10: process type: single
)'
re-opt.t TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 0, req 0) got: 'from: 1
to: 1563
'
expected: 'error: pcre_exec() failed: -27
'
re-opt.t TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 1, req 0) got: 'from: 1
to: 1563
'
expected: 'error: pcre_exec() failed: -27
'
re-sub.t ERROR: client socket timed out - TEST 5: replace template + submatches (exceeding buffers) '
re-sub.t TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +0,0 @@
-s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd
-n: 2048
'
re-sub.t ERROR: client socket timed out - TEST 5: replace template + submatches (exceeding buffers) '
re-sub.t TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +0,0 @@
-s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd
-n: 2048
'
request.t TEST 4: ngx.req.get_headers (metatable) - pattern "(?^:\[TRACE\s+\d+ .*? -> \d+\])" should match a line in error.log (req 0)
request.t TEST 7: ngx.req.start_time() - response_body - response is expected (repeated req 0, req 0) got: "true\x{0a}>= 0.099: true\x{0a}< 0.11: false\x{0a}"
length: 34
expected: "true\x{0a}>= 0.099: true\x{0a}< 0.11: true\x{0a}"
length: 33
strings begin to differ at char 29 (line 3 column 9)
semaphore.t TEST 28: kill a thread that is waiting on another thread that is waiting on semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:48 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:04:48 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:48 [debug] 15511\#15511: *373 event timer add: 0: 1000:7372119
2023/12/28 11:04:48 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:04:48 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:04:48 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:04:48 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:04:48 [debug] 15511\#15511: worker cycle
2023/12/28 11:04:48 [debug] 15511\#15511: epoll timer: 402
2023/12/28 11:04:48 [debug] 15553\#15553: *403 reusable connection: 1
'
semaphore.t TEST 14: semaphore in header_filter_by_lua (wait not allowed) - grep_error_log_out (req 0) @@ -1,2 +1,4 @@
+sem: timeout,
+sem: timeout,
sem: 1,
sem: API disabled in the context of header_filter_by_lua*,
'
semaphore.t TEST 27: kill a light thread that is waiting on a semaphore (after post) - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:51 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:04:51 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):18: sem: 6 times, context: ngx.timer
2023/12/28 11:04:51 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:51 [debug] 15511\#15511: *373 event timer add: 0: 1000:7375123
2023/12/28 11:04:51 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:04:51 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:04:51 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:04:51 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:04:51 [debug] 15511\#15511: worker cycle
2023/12/28 11:04:51 [debug] 15511\#15511: epoll timer: 1000
'
semaphore.t TEST 27: kill a light thread that is waiting on a semaphore (after post) - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:51 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):18: sem: 6 times, context: ngx.timer" (req 0) 2023/12/28 11:04:51 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:51 [debug] 15511\#15511: *373 event timer add: 0: 1000:7375123
2023/12/28 11:04:51 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:04:51 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:04:51 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:04:51 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:04:51 [debug] 15511\#15511: worker cycle
2023/12/28 11:04:51 [debug] 15511\#15511: epoll timer: 1000
2023/12/28 11:04:51 [debug] 15631\#15631: epoll: fd:7 ev:0001 d:05F4BBC8
'
semaphore.t TEST 4: basic semaphore in subrequest - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:52 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:04:52 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:52 [debug] 15511\#15511: *373 event timer add: 0: 1000:7376124
2023/12/28 11:04:52 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:04:52 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:04:52 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:04:52 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:04:52 [debug] 15511\#15511: worker cycle
2023/12/28 11:04:52 [debug] 15511\#15511: epoll timer: 1000
2023/12/28 11:04:52 [debug] 15631\#15631: epoll: fd:7 ev:0001 d:05F4BBC8
'
semaphore.t TEST 4: basic semaphore in subrequest - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:53 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:04:53 [debug] 15667\#15667: malloc: 05050810:32
2023/12/28 11:04:53 [debug] 15667\#15667: malloc: 05050860:8
2023/12/28 11:04:53 [debug] 15667\#15667: malloc: 05050898:12
2023/12/28 11:04:53 [debug] 15667\#15667: malloc: 050508D8:8
2023/12/28 11:04:53 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:53 [debug] 15667\#15667: *497 event timer add: 3: 60000:7436125
2023/12/28 11:04:53 [debug] 15511\#15511: *373 event timer add: 0: 1000:7377125
2023/12/28 11:04:53 [debug] 15667\#15667: *497 reusable connection: 1
2023/12/28 11:04:53 [debug] 15511\#15511: http lua semaphore wait yielding
'
semaphore.t TEST 21: semaphore post in header_filter_by_lua (subrequest) - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:54 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:04:54 [debug] 15709\#15709: *504 http header: "Accept: */*"
2023/12/28 11:04:54 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:54 [debug] 15511\#15511: *373 event timer add: 0: 1000:7378125
2023/12/28 11:04:54 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:04:54 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:04:54 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:04:54 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:04:54 [debug] 15511\#15511: worker cycle
2023/12/28 11:04:54 [debug] 15511\#15511: epoll timer: 1000
'
semaphore.t TEST 40: bugfix: semaphore instance can't be garbage collected when someone is waiting on it - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:55 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:04:55 [debug] 14924\#14924: malloc: 04FC23F0:8
2023/12/28 11:04:55 [debug] 14924\#14924: malloc: 04FC2428:28
2023/12/28 11:04:55 [debug] 14924\#14924: malloc: 04FC2478:8
2023/12/28 11:04:55 [debug] 14924\#14924: malloc: 04FC24B0:22
2023/12/28 11:04:55 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:55 [debug] 14924\#14924: malloc: 04FC24F8:8
2023/12/28 11:04:55 [debug] 15511\#15511: *373 event timer add: 0: 1000:7379126
2023/12/28 11:04:55 [debug] 14924\#14924: malloc: 04FC2530:32
2023/12/28 11:04:55 [debug] 15511\#15511: http lua semaphore wait yielding
'
semaphore.t TEST 40: bugfix: semaphore instance can't be garbage collected when someone is waiting on it - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:04:56 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:04:56 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:04:56 [debug] 15511\#15511: *373 event timer add: 0: 1000:7380127
2023/12/28 11:04:56 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:04:56 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:04:56 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:04:56 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:04:56 [debug] 15511\#15511: worker cycle
2023/12/28 11:04:56 [debug] 15511\#15511: epoll timer: 1000
2023/12/28 11:04:56 [debug] 15745\#15745: epoll: fd:7 ev:0001 d:04F17D90
'
semaphore.t TEST 13: semaphore in log_by_lua (wait not allowed) - grep_error_log_out (req 0) @@ -1,2 +1,5 @@
+sem: timeout,
+sem: 6 times,
sem: 1 while logging request,
sem: API disabled in the context of log_by_lua* while logging request,
+sem: timeout,
'
semaphore.t TEST 24: semaphore post in timer.at - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:03 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:03 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):18: sem: 6 times, context: ngx.timer
2023/12/28 11:05:03 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:03 [debug] 15511\#15511: *373 event timer add: 0: 1000:7387135
2023/12/28 11:05:03 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:03 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:03 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:03 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:03 [debug] 15511\#15511: worker cycle
2023/12/28 11:05:03 [debug] 15511\#15511: epoll timer: 1000
'
semaphore.t TEST 24: semaphore post in timer.at - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:03 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):18: sem: 6 times, context: ngx.timer" (req 0) 2023/12/28 11:05:03 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:03 [debug] 15511\#15511: *373 event timer add: 0: 1000:7387135
2023/12/28 11:05:03 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:03 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:03 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:03 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:03 [debug] 15511\#15511: worker cycle
2023/12/28 11:05:03 [debug] 15511\#15511: epoll timer: 1000
2023/12/28 11:05:03 [debug] 15907\#15907: epoll: fd:7 ev:0001 d:05148BE8
'
semaphore.t TEST 24: semaphore post in timer.at - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:04 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:04 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:04 [debug] 15511\#15511: *373 event timer add: 0: 1000:7388136
2023/12/28 11:05:04 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:04 [debug] 15943\#15943: lua ref lua thread 06009668 (ref 1)
2023/12/28 11:05:04 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:04 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:04 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:04 [debug] 15511\#15511: worker cycle
2023/12/28 11:05:04 [debug] 15511\#15511: epoll timer: 1000
'
semaphore.t TEST 11: semaphore in access_by_lua (all allowed) - grep_error_log_out (req 0) @@ -1,2 +1,3 @@
sem: timeout,
+sem: timeout,
sem: 1,
'
semaphore.t TEST 25: two thread wait for each other - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:11 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:11 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:11 [debug] 15511\#15511: *373 event timer add: 0: 1000:7395144
2023/12/28 11:05:11 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:11 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:11 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:11 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:11 [debug] 15511\#15511: worker cycle
2023/12/28 11:05:11 [debug] 15511\#15511: epoll timer: 1000
2023/12/28 11:05:11 [debug] 16136\#16136: epoll: fd:3 ev:2001 d:04F14F91
'
semaphore.t TEST 2: semaphore wait order - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:12 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:12 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:12 [debug] 15511\#15511: *373 event timer add: 0: 1000:7396144
2023/12/28 11:05:12 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:12 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:12 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:12 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:12 [debug] 15511\#15511: worker cycle
2023/12/28 11:05:12 [debug] 15511\#15511: epoll timer: 1000
2023/12/28 11:05:12 [debug] 16178\#16178: testing the EPOLLRDHUP flag: success
'
semaphore.t TEST 2: semaphore wait order - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:13 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:13 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:13 [debug] 15511\#15511: *373 event timer add: 0: 1000:7397145
2023/12/28 11:05:13 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:13 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:13 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:13 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:13 [debug] 15511\#15511: worker cycle
'
semaphore.t TEST 19: semaphore wait post in rewrite_by_lua - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:14 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:14 [debug] 16214\#16214: *854 http copy filter: "/ver?"
2023/12/28 11:05:14 [debug] 16214\#16214: *854 malloc: 057A4640:64
2023/12/28 11:05:14 [debug] 16214\#16214: *854 malloc: 057B9710:8
2023/12/28 11:05:14 [debug] 16214\#16214: *854 lua capture body filter, uri "/ver"
2023/12/28 11:05:14 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:14 [debug] 16214\#16214: *854 image filter
2023/12/28 11:05:14 [debug] 15511\#15511: *373 event timer add: 0: 1000:7398146
2023/12/28 11:05:14 [debug] 16214\#16214: *854 http postpone filter "/ver?" BEDFF950
2023/12/28 11:05:14 [debug] 15511\#15511: http lua semaphore wait yielding
'
semaphore.t TEST 38: basic semaphore count - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:15 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:15 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):18: sem: 6 times, context: ngx.timer
2023/12/28 11:05:15 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:15 [debug] 15511\#15511: *373 event timer add: 0: 1000:7399147
2023/12/28 11:05:15 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:15 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:15 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:15 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:15 [debug] 15511\#15511: worker cycle
2023/12/28 11:05:15 [debug] 15511\#15511: epoll timer: 1000
'
semaphore.t TEST 38: basic semaphore count - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:15 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):18: sem: 6 times, context: ngx.timer" (req 0) 2023/12/28 11:05:15 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:15 [debug] 15511\#15511: *373 event timer add: 0: 1000:7399147
2023/12/28 11:05:15 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:15 [debug] 15511\#15511: *373 lua resume returned 1
2023/12/28 11:05:15 [debug] 15511\#15511: *373 lua thread yielded
2023/12/28 11:05:15 [debug] 15511\#15511: *373 lua run thread returned -2
2023/12/28 11:05:15 [debug] 15511\#15511: worker cycle
2023/12/28 11:05:15 [debug] 15511\#15511: epoll timer: 1000
2023/12/28 11:05:15 [notice] 14924\#14924: start worker process 16256
'
semaphore.t TEST 38: basic semaphore count - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:16 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 1) 2023/12/28 11:05:16 [debug] 16256\#16256: http lua semaphore post: 05642B5C, n: 3, resources: 9
2023/12/28 11:05:16 [debug] 16256\#16256: *896 lua reuse free buf memory 12 >= 12, cl:0584C1B0, p:05814608
2023/12/28 11:05:16 [debug] 16256\#16256: *896 lua say response
2023/12/28 11:05:16 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:16 [debug] 16256\#16256: *896 http output filter "/test?"
2023/12/28 11:05:16 [debug] 15511\#15511: *373 event timer add: 0: 1000:7400148
2023/12/28 11:05:16 [debug] 16256\#16256: *896 http copy filter: "/test?"
2023/12/28 11:05:16 [debug] 15511\#15511: http lua semaphore wait yielding
2023/12/28 11:05:16 [debug] 16256\#16256: *896 lua capture body filter, uri "/test"
'
semaphore.t TEST 16: semaphore in ngx.timer (all allowed) - grep_error_log_out (req 0) @@ -1,2 +1,3 @@
sem: timeout,
+sem: timeout,
sem: 1,
'
semaphore.t TEST 10: semaphore in rewrite_by_lua (all allowed) - grep_error_log_out (req 0) @@ -1,2 +1,4 @@
sem: timeout,
+sem: timeout,
+sem: timeout,
sem: 1,
'
semaphore.t TEST 3: semaphore wait time=0 - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:05:20 [error] 15511\#15511: *373 [lua] init_worker_by_lua(nginx.conf:26):14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:05:20 [debug] 16350\#16350: free: 0582D540, unused: 0
2023/12/28 11:05:20 [debug] 16350\#16350: free: 0582C0C8, unused: 0
2023/12/28 11:05:20 [debug] 16350\#16350: free: 05823998, unused: 0
2023/12/28 11:05:20 [debug] 16350\#16350: free: 05820D08, unused: 0
2023/12/28 11:05:20 [debug] 16350\#16350: free: 05819860, unused: 0
2023/12/28 11:05:20 [debug] 15511\#15511: http lua semaphore wait: 064E637C, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:05:20 [debug] 16350\#16350: free: 05815E70, unused: 0
2023/12/28 11:05:20 [debug] 15511\#15511: *373 event timer add: 0: 1000:7404152
2023/12/28 11:05:20 [debug] 16350\#16350: free: 057EE060, unused: 0
'
shared.t TEST 4: shared.ttl returns key ttl for non-default (positive) ttl - response_body_like - response is expected (0.2 sleep for 0.1s... -0.014) '0.2
sleep for 0.1s...
-0.014
'
doesn't match '(?^s:\A0.2
sleep for 0.1s...
0.\d*
\z)'
shared.t TEST 3: shared.ttl returns error on not found key - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'failed to get ttl: not found
'
shared.t TEST 3: shared.ttl returns error on not found key - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'failed to get ttl: not found
'
shared.t TEST 11: shared.expire returns error on not found key - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'failed to set ttl: not found
'
shared.t TEST 11: shared.expire returns error on not found key - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'failed to set ttl: not found
'
ssl-session-fetch.t TEST 3: store new session, and resume it - grep_error_log_out (req 0) ''
doesn't match '(?^s:ssl_session_store_by_lua\(nginx.conf:\d+\):5: session id: [a-fA-F\d]+)'
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - grep_error_log_out (req 0) ''
doesn't match '(?^s:^ssl_session_store_by_lua\(nginx.conf:\d+\):5: session id: [a-fA-F\d]+$)'
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - grep_error_log_out (req 1) 'ssl_session_store_by_lua(nginx.conf:27):5: session id: c6b7898cdec294b4ba1feef5ea1ccad4f3bb733853e6834f36972d22f74777bd
ssl_session_fetch_by_lua(nginx.conf:34):4: session id: c6b7898cdec294b4ba1feef5ea1ccad4f3bb733853e6834f36972d22f74777bd
failed to resume session: failed to de-serialize session
ssl_session_store_by_lua(nginx.conf:27):5: session id: d0af3887cbfbbdd6e5fe226aa9d490847261685d76358154b12f7787e092a119
'
doesn't match '(?^s:^ssl_session_fetch_by_lua\(nginx.conf:\d+\):4: session id: [a-fA-F\d]+
failed to resume session: failed to de-serialize session
ssl_session_store_by_lua\(nginx.conf:\d+\):5: session id: [a-fA-F\d]+
$)'
ssl-session-store.t TEST 2: get new session id serialized - pattern "(?^s:ssl_session_store_by_lua\(nginx.conf:\d+\):4: session id: [a-fA-f\d]+)" should match a line in error.log (req 0)
ssl-session-store.t TEST 3: store the session via timer to memcached - pattern "(?^s:received memc reply: STORED)" should match a line in error.log (req 0)
ssl-session-store.t TEST 3: store the session via timer to memcached - pattern "(?^s:received memc reply: STORED)" should match a line in error.log (req 1)
ssl-session-store.t TEST 1: get new session serialized - pattern "(?^s:ssl_session_store_by_lua\(nginx.conf:\d+\):4: session size: \d+)" should match a line in error.log (req 0)
ssl.t TEST 24: verify client without CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0)
ssl.t TEST 23: verify client with CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0)
ssl.t TEST 25: verify client but client provides no certificate - pattern "client certificate subject: nil" should match a line in error.log (req 0)
stream/errlog.t TEST 13: filter log by level(ngx.CRIT) - response_body - response is expected (repeated req 0, req 0) got: 'log lines:1
'
expected: 'log lines:0
'
stream/errlog.t TEST 3: client connected info - grep_error_log_out (req 0) 'client 127.0.0.1:39060 connected to
capture log line:10
'
doesn't match '(?^:^client .*? connected to .*?
capture log line:1
$)'
stream/errlog.t TEST 3: client connected info - grep_error_log_out (req 1) 'client 127.0.0.1:39062 connected to
capture log line:10
'
doesn't match '(?^:^client .*? connected to .*?
capture log line:2
$)'
stream/errlog.t TEST 21: multi-line error log - response_body_like - response is expected (log lines: \#2 log level:6 log body:2023/12/28 11:15:03 [notice] 24648\#24648: start worker processes log level:4 log body:2023/12/28 11:15:04 [error] 24840\#24840: *154 stream [lua] content_by_lua(nginx.conf:67):8: --> new line, client: 127.0.0.1, server: 0.0.0.0:1985) 'log lines: #2
log level:6
log body:2023/12/28 11:15:03 [notice] 24648#24648: start worker processes
log level:4
log body:2023/12/28 11:15:04 [error] 24840#24840: *154 stream [lua] content_by_lua(nginx.conf:67):8: -->
new line, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\Alog lines: #1
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: -->
new line, client: 127.0.0.1, server: 0.0.0.0:\d+
\z)'
stream/errlog.t nginx: [emerg] invalid number of arguments in "lua_capture_error_log" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17
stream/errlog.t nginx: [emerg] invalid capture error log size "3k", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17
stream/errlog.t TEST 19: fetch a few and generate a few, then fetch again (overflown again) - response_body_like - response is expected (msg count: 3 log level:5 log body:2023/12/28 11:15:18 [warn] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:18 [error] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:18 [warn] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 msg count: 3 log level:5 log body:2023/12/28 11:15:18 [warn] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:18 [error] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:18 [warn] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:18 [error] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):24: --> 102, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:18 [error] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):25: --> 103, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:18 [error] 25063\#25063: *34 stream [lua] content_by_lua(nginx.conf:93):26: --> 104, client: 127.0.0.1, server: 0.0.0.0:1985) 'msg count: 3
log level:5
log body:2023/12/28 11:15:18 [warn] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:18 [error] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:18 [warn] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
msg count: 3
log level:5
log body:2023/12/28 11:15:18 [warn] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:18 [error] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:18 [warn] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:18 [error] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):24: --> 102, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:18 [error] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):25: --> 103, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:18 [error] 25063#25063: *34 stream [lua] content_by_lua(nginx.conf:93):26: --> 104, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\Amsg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 102, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 103, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 104, client: 127.0.0.1, server: 0.0.0.0:\d+
|msg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 102, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 103, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 104, client: 127.0.0.1, server: 0.0.0.0:\d+
\z)'
stream/errlog.t TEST 19: fetch a few and generate a few, then fetch again (overflown again) - response_body_like - response is expected (msg count: 3 log level:5 log body:2023/12/28 11:15:19 [warn] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:19 [error] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:19 [warn] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 msg count: 3 log level:5 log body:2023/12/28 11:15:19 [warn] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:19 [error] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:19 [warn] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:19 [error] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):24: --> 102, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:19 [error] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):25: --> 103, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:19 [error] 25063\#25063: *37 stream [lua] content_by_lua(nginx.conf:93):26: --> 104, client: 127.0.0.1, server: 0.0.0.0:1985) 'msg count: 3
log level:5
log body:2023/12/28 11:15:19 [warn] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:19 [error] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:19 [warn] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
msg count: 3
log level:5
log body:2023/12/28 11:15:19 [warn] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:19 [error] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:19 [warn] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:19 [error] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):24: --> 102, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:19 [error] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):25: --> 103, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:19 [error] 25063#25063: *37 stream [lua] content_by_lua(nginx.conf:93):26: --> 104, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\Amsg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 102, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 103, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 104, client: 127.0.0.1, server: 0.0.0.0:\d+
|msg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 102, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 103, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 104, client: 127.0.0.1, server: 0.0.0.0:\d+
\z)'
stream/errlog.t TEST 22: user-supplied Lua table to hold the result (get one log + no log) - response_body_like - response is expected (maybe log lines: \#2 log level:6 log body:2023/12/28 11:15:20 [notice] 25028\#25028: start worker processes log level:4 log body:2023/12/28 11:15:21 [error] 25142\#25142: *94 stream [lua] content_by_lua(nginx.conf:75):8: --> new line, client: 127.0.0.1, server: 0.0.0.0:1985 end maybe log lines: \#2 end) 'maybe log lines: #2
log level:6
log body:2023/12/28 11:15:20 [notice] 25028#25028: start worker processes
log level:4
log body:2023/12/28 11:15:21 [error] 25142#25142: *94 stream [lua] content_by_lua(nginx.conf:75):8: -->
new line, client: 127.0.0.1, server: 0.0.0.0:1985
end
maybe log lines: #2
end
'
doesn't match '(?^s:\Amaybe log lines: #1
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: -->
new line, client: 127.0.0.1, server: 0.0.0.0:\d+
end
maybe log lines: #1
end
\z)'
stream/errlog.t TEST 31: ringbuf sentinel bug2 - response_body_like - response is expected (log lines: \#18 log lines: \#3) 'log lines: #18
log lines: #3
'
doesn't match '(?^s:\A(?:log lines: #18
log lines: #1
|log lines: #18
log lines: #2
)\z)'
stream/errlog.t TEST 17: flood the capturing buffer (4k) - response_body_like - response is expected (log lines: \#25 log level:4 log body:2023/12/28 11:15:31 [error] 25407\#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:31 [warn] 25407\#25407: *305 stream [lua] content_by_lua(nginx.conf:78):10: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:31 [error] 25407\#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:31 [error] 25407\#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:31 [warn] 25407\#25407: *305 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:31 [error] 25407\#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985) 'log lines: #25
log level:4
log body:2023/12/28 11:15:31 [error] 25407#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:31 [warn] 25407#25407: *305 stream [lua] content_by_lua(nginx.conf:78):10: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:31 [error] 25407#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:31 [error] 25407#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:31 [warn] 25407#25407: *305 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:31 [error] 25407#25407: *305 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\A(?:log lines: #26
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 99, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
)\z)'
stream/errlog.t TEST 17: flood the capturing buffer (4k) - response_body_like - response is expected (log lines: \#25 log level:4 log body:2023/12/28 11:15:32 [error] 25407\#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:32 [warn] 25407\#25407: *308 stream [lua] content_by_lua(nginx.conf:78):10: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:32 [error] 25407\#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:32 [error] 25407\#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:32 [warn] 25407\#25407: *308 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:32 [error] 25407\#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985) 'log lines: #25
log level:4
log body:2023/12/28 11:15:32 [error] 25407#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:32 [warn] 25407#25407: *308 stream [lua] content_by_lua(nginx.conf:78):10: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:32 [error] 25407#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 89, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:32 [error] 25407#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:32 [warn] 25407#25407: *308 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:32 [error] 25407#25407: *308 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\A(?:log lines: #26
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 88, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 89, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 99, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
)\z)'
stream/errlog.t TEST 11: filter log by level(ngx.INFO) - response_body - response is expected (repeated req 0, req 0) got: 'log lines:4
'
expected: 'log lines:3
'
stream/errlog.t TEST 12: filter log by level(ngx.WARN) - response_body - response is expected (repeated req 0, req 0) got: 'log lines:3
'
expected: 'log lines:2
'
stream/errlog.t TEST 20: fetch a few and generate a few, then fetch again (not overflown again) - response_body_like - response is expected (msg count: 3 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:36 [warn] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 msg count: 3 log level:5 log body:2023/12/28 11:15:36 [warn] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:36 [warn] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):23: howdy, something new!, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *397 stream [lua] content_by_lua(nginx.conf:91):24: howdy, something even newer!, client: 127.0.0.1, server: 0.0.0.0:1985) 'msg count: 3
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:36 [warn] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
msg count: 3
log level:5
log body:2023/12/28 11:15:36 [warn] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:36 [warn] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):23: howdy, something new!, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *397 stream [lua] content_by_lua(nginx.conf:91):24: howdy, something even newer!, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\Amsg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something new!, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something even newer!, client: 127.0.0.1, server: 0.0.0.0:\d+
\z)'
stream/errlog.t TEST 20: fetch a few and generate a few, then fetch again (not overflown again) - response_body_like - response is expected (msg count: 3 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:36 [warn] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 msg count: 3 log level:5 log body:2023/12/28 11:15:36 [warn] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:36 [warn] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):23: howdy, something new!, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:36 [error] 25528\#25528: *400 stream [lua] content_by_lua(nginx.conf:91):24: howdy, something even newer!, client: 127.0.0.1, server: 0.0.0.0:1985) 'msg count: 3
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:36 [warn] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
msg count: 3
log level:5
log body:2023/12/28 11:15:36 [warn] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):10: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 87, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:36 [warn] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):10: --> 88, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):23: howdy, something new!, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:36 [error] 25528#25528: *400 stream [lua] content_by_lua(nginx.conf:91):24: howdy, something even newer!, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\Amsg count: 3
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
msg count: 3
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 86, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 87, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something new!, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*?content_by_lua\(nginx.conf:\d+\):\d+: howdy, something even newer!, client: 127.0.0.1, server: 0.0.0.0:\d+
\z)'
stream/errlog.t TEST 18: flood the capturing buffer (5k) - response_body_like - response is expected (log lines: \#31 log level:4 log body:2023/12/28 11:15:41 [error] 25651\#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:41 [warn] 25651\#25651: *490 stream [lua] content_by_lua(nginx.conf:78):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:41 [error] 25651\#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:41 [error] 25651\#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:41 [warn] 25651\#25651: *490 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:41 [error] 25651\#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985) 'log lines: #31
log level:4
log body:2023/12/28 11:15:41 [error] 25651#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:41 [warn] 25651#25651: *490 stream [lua] content_by_lua(nginx.conf:78):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:41 [error] 25651#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:41 [error] 25651#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:41 [warn] 25651#25651: *490 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:41 [error] 25651#25651: *490 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\A(?:log lines: #33
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 99, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
)\z)'
stream/errlog.t TEST 18: flood the capturing buffer (5k) - response_body_like - response is expected (log lines: \#31 log level:4 log body:2023/12/28 11:15:42 [error] 25651\#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:42 [warn] 25651\#25651: *493 stream [lua] content_by_lua(nginx.conf:78):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:42 [error] 25651\#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:42 [error] 25651\#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985 log level:5 log body:2023/12/28 11:15:42 [warn] 25651\#25651: *493 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985 log level:4 log body:2023/12/28 11:15:42 [error] 25651\#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985) 'log lines: #31
log level:4
log body:2023/12/28 11:15:42 [error] 25651#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 85, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:42 [warn] 25651#25651: *493 stream [lua] content_by_lua(nginx.conf:78):10: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:42 [error] 25651#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 86, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:42 [error] 25651#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 99, client: 127.0.0.1, server: 0.0.0.0:1985
log level:5
log body:2023/12/28 11:15:42 [warn] 25651#25651: *493 stream [lua] content_by_lua(nginx.conf:78):10: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
log level:4
log body:2023/12/28 11:15:42 [error] 25651#25651: *493 stream [lua] content_by_lua(nginx.conf:78):11: --> 100, client: 127.0.0.1, server: 0.0.0.0:1985
'
doesn't match '(?^s:\A(?:log lines: #33
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 84, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 85, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 99, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:5
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[warn\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
log level:4
log body:\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\] (\d+).*content_by_lua\(nginx.conf:\d+\):\d+: --> 100, client: 127.0.0.1, server: 0.0.0.0:\d+
)\z)'
stream/process-type-hup.t TEST 1: sanity - pattern "init_worker_by_lua:6: process type: privileged" should match a line in error.log (req 0)
stream/process-type-hup.t TEST 1: sanity - pattern "init_worker_by_lua:6: process type: privileged" should match a line in error.log (req 1)
stream/process-type-single.t TEST 1: sanity - response_body - response is expected (repeated req 0, req 0) got: "process type: worker\x{0a}"
length: 21
expected: "process type: single\x{0a}"
length: 21
strings begin to differ at char 15 (line 1 column 15)
stream/process-type-single.t TEST 1: sanity - grep_error_log_out (req 0) '[TRACE 1 init_by_lua:31 loop]
[TRACE 2 init_worker_by_lua:4 loop]
[TRACE 2 content_by_lua(nginx.conf:78):4 loop]
process type in init_by_lua*: master
init_worker_by_lua:10: process type: worker
'
doesn't match '(?^:\[TRACE\s+\d+ init_by_lua:\d+ loop\]
\[TRACE\s+\d+ init_worker_by_lua:\d+ loop\]
\[TRACE\s+\d+ content_by_lua\(nginx.conf:\d+\):4 loop\]
process type in init_by_lua\*: single
init_worker_by_lua:10: process type: single
)'
stream/process-type-single.t TEST 1: sanity - response_body - response is expected (repeated req 1, req 0) got: "process type: worker\x{0a}"
length: 21
expected: "process type: single\x{0a}"
length: 21
strings begin to differ at char 15 (line 1 column 15)
stream/process-type-single.t TEST 1: sanity - grep_error_log_out (req 1) '[TRACE 1 init_by_lua:31 loop]
[TRACE 2 init_worker_by_lua:4 loop]
[TRACE 2 content_by_lua(nginx.conf:78):4 loop]
process type in init_by_lua*: master
init_worker_by_lua:10: process type: worker
'
doesn't match '(?^:\[TRACE\s+\d+ init_by_lua:\d+ loop\]
\[TRACE\s+\d+ init_worker_by_lua:\d+ loop\]
\[TRACE\s+\d+ content_by_lua\(nginx.conf:\d+\):4 loop\]
process type in init_by_lua\*: single
init_worker_by_lua:10: process type: single
)'
stream/request.t TEST 1: ngx.req.start_time() - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,3 @@
true
>= 0.099: true
-< 0.11: true
+< 0.11: false
'
Looks like you failed 1 test of 12.
stream/semaphore.t TEST 18: kill a thread that is waiting on another thread that is waiting on semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:02 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:02 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:02 [debug] 31154\#31154: *420 event timer add: 0: 1000:8346308
2023/12/28 11:21:02 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:02 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:02 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:02 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:02 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:02 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:02 [notice] 30572\#30572: start worker processes
'
stream/semaphore.t TEST 18: kill a thread that is waiting on another thread that is waiting on semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:03 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:03 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer
2023/12/28 11:21:03 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:03 [debug] 31154\#31154: *420 event timer add: 0: 1000:8347309
2023/12/28 11:21:03 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:03 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:03 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:03 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:03 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:03 [debug] 31154\#31154: epoll timer: 1000
'
stream/semaphore.t TEST 18: kill a thread that is waiting on another thread that is waiting on semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:03 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer" (req 0) 2023/12/28 11:21:03 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:03 [debug] 31154\#31154: *420 event timer add: 0: 1000:8347309
2023/12/28 11:21:03 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:03 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:03 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:03 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:03 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:03 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:03 [debug] 31333\#31333: malloc: 05DD6058:327612
'
stream/semaphore.t TEST 16: kill a light thread that is waiting on a semaphore (no resource) - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:04 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:04 [debug] 31333\#31333: free: 04E27B30, unused: 0
2023/12/28 11:21:04 [debug] 31333\#31333: free: 04E23388, unused: 0
2023/12/28 11:21:04 [debug] 31333\#31333: free: 04E04CB0, unused: 0
2023/12/28 11:21:04 [debug] 31333\#31333: free: 04DE36F0, unused: 0
2023/12/28 11:21:04 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:04 [debug] 31333\#31333: free: 04DDE750, unused: 0
2023/12/28 11:21:04 [debug] 31154\#31154: *420 event timer add: 0: 1000:8348310
2023/12/28 11:21:04 [debug] 31333\#31333: free: 04DDC518, unused: 0
2023/12/28 11:21:04 [debug] 31154\#31154: stream lua semaphore wait yielding
'
stream/semaphore.t TEST 16: kill a light thread that is waiting on a semaphore (no resource) - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:05 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 1) 2023/12/28 11:21:05 [debug] 31369\#31369: *601 generic phase: 1
2023/12/28 11:21:05 [debug] 31369\#31369: *601 generic phase: 2
2023/12/28 11:21:05 [debug] 31369\#31369: *601 generic phase: 3
2023/12/28 11:21:05 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:05 [debug] 31369\#31369: *601 tcp_nodelay
2023/12/28 11:21:05 [debug] 31154\#31154: *420 event timer add: 0: 1000:8349312
2023/12/28 11:21:05 [debug] 31369\#31369: *601 stream lua content handler
2023/12/28 11:21:05 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:05 [debug] 31369\#31369: *601 malloc: 05571CC8:172
'
stream/semaphore.t TEST 2: semaphore wait order - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:06 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:06 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer
2023/12/28 11:21:06 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:06 [debug] 31154\#31154: *420 event timer add: 0: 1000:8350313
2023/12/28 11:21:06 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:06 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:06 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:06 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:06 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:06 [debug] 31154\#31154: epoll timer: 1000
'
stream/semaphore.t TEST 2: semaphore wait order - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:06 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer" (req 0) 2023/12/28 11:21:06 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:06 [debug] 31154\#31154: *420 event timer add: 0: 1000:8350313
2023/12/28 11:21:06 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:06 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:06 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:06 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:06 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:06 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:06 [debug] 31413\#31413: *607 reusable connection: 0
'
stream/semaphore.t TEST 15: two thread wait for each other - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:10 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:10 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:10 [debug] 31154\#31154: *420 event timer add: 0: 1000:8354317
2023/12/28 11:21:10 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:10 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:10 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:10 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:10 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:10 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:10 [debug] 31455\#31455: epoll: fd:8 ev:0001 d:04CCC058
'
stream/semaphore.t TEST 15: two thread wait for each other - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:11 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:11 [debug] 31455\#31455: in lua gc, semaphore 0630FD04
2023/12/28 11:21:11 [debug] 31455\#31455: add to free queue tail semaphore: 0630FD04 epoch: 1mid_epoch: 2 cur_epoch: 3
2023/12/28 11:21:11 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:11 [debug] 31455\#31455: in lua gc, semaphore 062E4104
2023/12/28 11:21:11 [debug] 31154\#31154: *420 event timer add: 0: 1000:8355318
2023/12/28 11:21:11 [debug] 31455\#31455: add to free queue tail semaphore: 062E4104 epoch: 1mid_epoch: 2 cur_epoch: 3
2023/12/28 11:21:11 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:11 [debug] 31455\#31455: in lua gc, semaphore 062FADB4
2023/12/28 11:21:11 [debug] 31154\#31154: *420 lua resume returned 1
'
stream/semaphore.t TEST 15: two thread wait for each other - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:12 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 1) 2023/12/28 11:21:12 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer
2023/12/28 11:21:12 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:12 [debug] 31154\#31154: *420 event timer add: 0: 1000:8356320
2023/12/28 11:21:12 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:12 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:12 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:12 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:12 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:12 [debug] 31154\#31154: epoll timer: 1000
'
stream/semaphore.t TEST 15: two thread wait for each other - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:12 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer" (req 1) 2023/12/28 11:21:12 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:12 [debug] 31154\#31154: *420 event timer add: 0: 1000:8356320
2023/12/28 11:21:12 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:12 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:12 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:12 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:12 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:12 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:12 [debug] 31504\#31504: timer delta: 192
'
stream/semaphore.t TEST 11: semaphore in ngx.timer (all allowed) - grep_error_log_out (req 0) @@ -1,2 +1,4 @@
sem: timeout,
+sem: timeout,
sem: 1,
+sem: timeout,
'
stream/semaphore.t TEST 21: multi wait and mult post with one semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:15 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:15 [debug] 31547\#31547: free: 0528DBA0, unused: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 0524EF08, unused: 0
2023/12/28 11:21:15 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer
2023/12/28 11:21:15 [debug] 31547\#31547: free: 0524EE80, unused: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 0524EE00, unused: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 05245D68, unused: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 05245CF0, unused: 0
2023/12/28 11:21:15 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 05245C68, unused: 0
'
stream/semaphore.t TEST 21: multi wait and mult post with one semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:15 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer" (req 0) 2023/12/28 11:21:15 [debug] 31547\#31547: free: 0524EE80, unused: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 0524EE00, unused: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 05245D68, unused: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 05245CF0, unused: 0
2023/12/28 11:21:15 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:15 [debug] 31547\#31547: free: 05245C68, unused: 0
2023/12/28 11:21:15 [debug] 31154\#31154: *420 event timer add: 0: 1000:8359323
2023/12/28 11:21:15 [debug] 31547\#31547: free: 05239FD8, unused: 0
2023/12/28 11:21:15 [debug] 31154\#31154: stream lua semaphore wait yielding
'
stream/semaphore.t TEST 21: multi wait and mult post with one semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:16 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 1) 2023/12/28 11:21:16 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:16 [debug] 31154\#31154: *420 event timer add: 0: 1000:8360325
2023/12/28 11:21:16 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:16 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:16 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:16 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:16 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:16 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:16 [debug] 31591\#31591: epoll: fd:8 ev:0001 d:04A0C2E0
'
stream/semaphore.t TEST 13: semaphore wait post in preread_by_lua - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:17 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:17 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:17 [debug] 31154\#31154: *420 event timer add: 0: 1000:8361326
2023/12/28 11:21:17 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:17 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:17 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:17 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:17 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:17 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:17 [debug] 31634\#31634: *764 malloc: 04A1A470:114
'
stream/semaphore.t TEST 20: main thread wait a light thread that is waiting on a semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:20 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:20 [debug] 31677\#31677: epoll timer: 896
2023/12/28 11:21:20 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:20 [debug] 31154\#31154: *420 event timer add: 0: 1000:8364329
2023/12/28 11:21:20 [debug] 31677\#31677: epoll: fd:9 ev:0001 d:04A7FAD1
2023/12/28 11:21:20 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:20 [debug] 31677\#31677: *826 http wait request handler
2023/12/28 11:21:20 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:20 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:20 [debug] 31677\#31677: *826 malloc: 0523DE40:52
'
stream/semaphore.t TEST 20: main thread wait a light thread that is waiting on a semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:21 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:21 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer
2023/12/28 11:21:21 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:21 [debug] 31154\#31154: *420 event timer add: 0: 1000:8365330
2023/12/28 11:21:21 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:21 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:21 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:21 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:21 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:21 [debug] 31154\#31154: epoll timer: 1000
'
stream/semaphore.t TEST 20: main thread wait a light thread that is waiting on a semaphore - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:21 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:18: sem: 3 times, context: ngx.timer" (req 0) 2023/12/28 11:21:21 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:21 [debug] 31154\#31154: *420 event timer add: 0: 1000:8365330
2023/12/28 11:21:21 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:21 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:21 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:21 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:21 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:21 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:21 [debug] 31714\#31714: epoll: fd:8 ev:0001 d:04DF7D40
'
stream/semaphore.t TEST 17: kill a light thread that is waiting on a semaphore (after post) - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:22 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:22 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:22 [debug] 31154\#31154: *420 event timer add: 0: 1000:8366331
2023/12/28 11:21:22 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:22 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:22 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:22 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:22 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:22 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:22 [debug] 31757\#31757: epoll add event: fd:11 op:1 ev:00002001
'
stream/semaphore.t TEST 17: kill a light thread that is waiting on a semaphore (after post) - pattern "[error]" should not match any line in error.log but matches line "2023/12/28 11:21:23 [error] 31154\#31154: *420 stream [lua] init_worker_by_lua:14: sem: timeout, context: ngx.timer" (req 0) 2023/12/28 11:21:23 [debug] 31154\#31154: stream lua semaphore wait: 04FB54A4, timeout: 1000, resources: 0, event posted: 0
2023/12/28 11:21:23 [debug] 31154\#31154: *420 event timer add: 0: 1000:8367332
2023/12/28 11:21:23 [debug] 31154\#31154: stream lua semaphore wait yielding
2023/12/28 11:21:23 [debug] 31154\#31154: *420 lua resume returned 1
2023/12/28 11:21:23 [debug] 31154\#31154: *420 lua thread yielded
2023/12/28 11:21:23 [debug] 31154\#31154: *420 lua run thread returned -2
2023/12/28 11:21:23 [debug] 31154\#31154: worker cycle
2023/12/28 11:21:23 [debug] 31154\#31154: epoll timer: 1000
2023/12/28 11:21:23 [debug] 31757\#31757: *879 malloc: 05D453B0:8
'
stream/semaphore.t TEST 8: semaphore in preread_by_lua (all allowed) - grep_error_log_out (req 0) @@ -1,2 +1,4 @@
+sem: timeout,
+sem: 3 times,
sem: timeout while prereading client data,
sem: 1 while prereading client data,
'
stream/ssl.t TEST 23: verify client with CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0)
stream/ssl.t TEST 25: verify client but client provides no certificate - pattern "client certificate subject: nil" should match a line in error.log (req 0)
stream/ssl.t TEST 24: verify client without CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0)
stream/ssl.t TEST 22: tls version - TLSv1.3 - pattern "got TLS1 version: TLSv1.3," should match a line in error.log (req 0)
stream/time.t TEST 7: "resty.core.time".monotonic_msec - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
true
-< 10: true
+< 10: false
'
stream/time.t TEST 1: ngx.now() - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,3 @@
true
>= 0.099: true
-< 0.11: true
+< 0.11: false
'
time.t TEST 13: "resty.core.time".monotonic_msec - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
true
-< 10: true
+< 10: false
'
time.t TEST 1: ngx.now() - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,3 @@
true
>= 0.099: true
-< 0.11: true
+< 0.11: false
'

Warnings

Go back to the index page.