(This page was automatically generated by the tools in the opsboy project on 05:23:53 23-Feb-2019 GMT.)

Detailed Test Report for lua-resty-core in linux x86_64 (rv)

Summary

Commit Testing Time Unexpected
Failures
Expected
Failures
Files Tests Elapsed Time
a11accbb 2019-02-19 19:37:32 GMT 0 325 71 8021 1840 sec

LuaJIT

LuaJIT 2.1.0-beta3, commit 0e646b5

OpenSSL

OpenSSL 1.1.0j 20 Nov 2018

Compilation Errors

Unexpected Failures

(none)

Expected Failures

File Name Details
balancer.t TEST 16: https (keepalive) - status code ok got: '502'
expected: '200'
balancer.t TEST 16: https (keepalive) - response_body - response is expected (repeated req 0, req 0) got: '<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.15.8 (no pool)</center>
</body>
</html>
'
expected: 'ok'
balancer.t TEST 16: https (keepalive) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 21:59:06 [alert] 11417\#0: *1 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking to upstream, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", upstream: \"https://127.0.0.1:1234/back\", host: \"localhost\"" (req 0) 2019/02/19 21:59:06 [debug] 11417\#0: *1 SSL_do_handshake: -1
2019/02/19 21:59:06 [debug] 11417\#0: *1 SSL_get_error: 1
2019/02/19 21:59:06 [crit] 11417\#0: *1 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking to upstream, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", upstream: "https://127.0.0.1:1234/back", host: "localhost"
2019/02/19 21:59:06 [debug] 11417\#0: *1 http next upstream, 2
2019/02/19 21:59:06 [debug] 11417\#0: *1 free keepalive peer
2019/02/19 21:59:06 [debug] 11417\#0: *1 lua balancer free peer, tries: 1
2019/02/19 21:59:06 [debug] 11417\#0: *1 finalize http upstream request: 502
2019/02/19 21:59:06 [debug] 11417\#0: *1 finalize http proxy request
2019/02/19 21:59:06 [debug] 11417\#0: *1 close http upstream connection: 9
'
balancer.t TEST 16: https (keepalive) - status code ok got: '502'
expected: '200'
balancer.t TEST 16: https (keepalive) - response_body - response is expected (repeated req 1, req 0) got: '<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.15.8 (no pool)</center>
</body>
</html>
'
expected: 'ok'
balancer.t TEST 17: https (no keepalive) - status code ok got: '502'
expected: '200'
balancer.t TEST 17: https (no keepalive) - response_body - response is expected (repeated req 0, req 0) got: '<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.15.8 (no pool)</center>
</body>
</html>
'
expected: 'ok'
balancer.t TEST 17: https (no keepalive) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 21:59:07 [alert] 11418\#0: *1 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking to upstream, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", upstream: \"https://127.0.0.1:12347/back\", host: \"localhost\"" (req 0) 2019/02/19 21:59:07 [debug] 11418\#0: *1 SSL_do_handshake: -1
2019/02/19 21:59:07 [debug] 11418\#0: *1 SSL_get_error: 1
2019/02/19 21:59:07 [crit] 11418\#0: *1 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking to upstream, client: 127.0.0.1, server: localhost, request: "GET /t HTTP/1.1", upstream: "https://127.0.0.1:12347/back", host: "localhost"
2019/02/19 21:59:07 [debug] 11418\#0: *1 http next upstream, 2
2019/02/19 21:59:07 [debug] 11418\#0: *1 lua balancer free peer, tries: 1
2019/02/19 21:59:07 [debug] 11418\#0: *1 finalize http upstream request: 502
2019/02/19 21:59:07 [debug] 11418\#0: *1 finalize http proxy request
2019/02/19 21:59:07 [debug] 11418\#0: *1 close http upstream connection: 9
2019/02/19 21:59:07 [debug] 11418\#0: *1 free: 000000000880DBD0, unused: 0
'
balancer.t TEST 17: https (no keepalive) - status code ok got: '502'
expected: '200'
balancer.t TEST 17: https (no keepalive) - response_body - response is expected (repeated req 1, req 0) got: '<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.15.8 (no pool)</center>
</body>
</html>
'
expected: 'ok'
errlog-raw-log.t nginx: [error] hello world from init_by_lua
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 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
ocsp.t TEST 1: get OCSP responder (good case) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 1: get OCSP responder (good case) - pattern "OCSP url found: http://127.0.0.1:8888/ocsp?foo=1," should match a line in error.log (req 0)
ocsp.t TEST 1: get OCSP responder (good case) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 1: get OCSP responder (good case) - pattern "OCSP url found: http://127.0.0.1:8888/ocsp?foo=1," should match a line in error.log (req 1)
ocsp.t TEST 2: get OCSP responder (not found) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 2: get OCSP responder (not found) - pattern "OCSP responder not found" should match a line in error.log (req 0)
ocsp.t TEST 2: get OCSP responder (not found) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 2: get OCSP responder (not found) - pattern "OCSP responder not found" should match a line in error.log (req 1)
ocsp.t TEST 16: good status req from client - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 16: good status req from client - pattern "ocsp status resp set ok: nil," should match a line in error.log (req 0)
ocsp.t TEST 16: good status req from client - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 16: good status req from client - pattern "ocsp status resp set ok: nil," should match a line in error.log (req 1)
ocsp.t TEST 7: create OCSP request (buffer too small) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 7: create OCSP request (buffer too small) - pattern "failed to create OCSP request: output buffer too small: 68 > 67" should match a line in error.log (req 0)
ocsp.t TEST 7: create OCSP request (buffer too small) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 7: create OCSP request (buffer too small) - pattern "failed to create OCSP request: output buffer too small: 68 > 67" should match a line in error.log (req 1)
ocsp.t TEST 11: fail to validate OCSP response - no issuer cert - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 11: fail to validate OCSP response - no issuer cert - pattern "failed to validate OCSP response: no issuer certificate in chain" should match a line in error.log (req 0)
ocsp.t TEST 11: fail to validate OCSP response - no issuer cert - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 11: fail to validate OCSP response - no issuer cert - pattern "failed to validate OCSP response: no issuer certificate in chain" should match a line in error.log (req 1)
ocsp.t TEST 15: fail to validate OCSP response - OCSP response returns revoked status - pattern "failed to validate OCSP response: certificate status "revoked" in the OCSP response" should match a line in error.log (req 0)
ocsp.t TEST 15: fail to validate OCSP response - OCSP response returns revoked status - pattern "failed to validate OCSP response: certificate status "revoked" in the OCSP response" should match a line in error.log (req 1)
ocsp.t TEST 10: validate good OCSP response - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 10: validate good OCSP response - pattern "OCSP response validation ok" should match a line in error.log (req 0)
ocsp.t TEST 10: validate good OCSP response - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 10: validate good OCSP response - pattern "OCSP response validation ok" should match a line in error.log (req 1)
ocsp.t TEST 17: no status req from client - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 17: no status req from client - pattern "ocsp status resp set ok: no status req," should match a line in error.log (req 0)
ocsp.t TEST 17: no status req from client - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 17: no status req from client - pattern "ocsp status resp set ok: no status req," should match a line in error.log (req 1)
ocsp.t TEST 9: create OCSP request (no issuer cert in the chain) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 9: create OCSP request (no issuer cert in the chain) - pattern "failed to create OCSP request: no issuer certificate in chain" should match a line in error.log (req 0)
ocsp.t TEST 9: create OCSP request (no issuer cert in the chain) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 9: create OCSP request (no issuer cert in the chain) - pattern "failed to create OCSP request: no issuer certificate in chain" should match a line in error.log (req 1)
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) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - pattern "OCSP response validation ok" should match a line in error.log (req 0)
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 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - pattern "OCSP response validation ok" should match a line in error.log (req 1)
ocsp.t TEST 12: validate good OCSP response - no certs in response - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 12: validate good OCSP response - no certs in response - pattern "OCSP response validation ok" should match a line in error.log (req 0)
ocsp.t TEST 12: validate good OCSP response - no certs in response - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 12: validate good OCSP response - no certs in response - pattern "OCSP response validation ok" should match a line in error.log (req 1)
ocsp.t TEST 5: get OCSP responder (truncated) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 5: get OCSP responder (truncated) - pattern "OCSP url found: http:/," should match a line in error.log (req 0)
ocsp.t TEST 5: get OCSP responder (truncated) - pattern "still get an error: truncated" should match a line in error.log (req 0)
ocsp.t TEST 5: get OCSP responder (truncated) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 5: get OCSP responder (truncated) - pattern "OCSP url found: http:/," should match a line in error.log (req 1)
ocsp.t TEST 5: get OCSP responder (truncated) - pattern "still get an error: truncated" should match a line in error.log (req 1)
ocsp.t TEST 3: get OCSP responder (no issuer cert at all) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 3: get OCSP responder (no issuer cert at all) - pattern "failed to get OCSP responder: no issuer certificate in chain" should match a line in error.log (req 0)
ocsp.t TEST 3: get OCSP responder (no issuer cert at all) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 3: get OCSP responder (no issuer cert at all) - pattern "failed to get OCSP responder: no issuer certificate in chain" should match a line in error.log (req 1)
ocsp.t TEST 6: create OCSP request (good) - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 6: create OCSP request (good) - pattern "OCSP request created with length 68" should match a line in error.log (req 0)
ocsp.t TEST 6: create OCSP request (good) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 6: create OCSP request (good) - pattern "OCSP request created with length 68" should match a line in error.log (req 1)
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) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - pattern "failed to get OCSP responder: issuer certificate not next to leaf" should match a line in error.log (req 0)
ocsp.t TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
ocsp.t TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - pattern "failed to get OCSP responder: issuer certificate not next to leaf" should match a line in error.log (req 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 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
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 - pattern "failed to validate OCSP response: OCSP_basic_verify() failed" should match a line in error.log (req 0)
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 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
'
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 - pattern "failed to validate OCSP response: OCSP_basic_verify() failed" should match a line in error.log (req 1)
ocsp.t TEST 8: create OCSP request (empty string cert chain) - pattern "failed to create OCSP request: d2i_X509_bio() failed" should match a line in error.log (req 0)
ocsp.t TEST 8: create OCSP request (empty string cert chain) - pattern "failed to create OCSP request: d2i_X509_bio() failed" should match a line in error.log (req 1)
pipe-stderr.t TEST 7: read stderr, pattern is read any - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
hello
-world
+w
'
pipe-stderr.t TEST 7: read stderr, pattern is read any - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
-hello
+h
-world
+e
'
pipe-stdin.t TEST 8: write and read process - response_body - response is expected (repeated req 0, req 0) got: 'a
'
expected: 'payload
'
pipe-stdin.t TEST 8: write and read process - response_body - response is expected (repeated req 1, req 0) got: 'a
'
expected: 'payload
'
pipe-stdin.t TEST 9: write process, support table, number and boolean arguments - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,3 @@
2
11
-10hello world
+1
'
pipe-stdin.t TEST 1: write process - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,4 @@
0
5
6
-hello world
+h
'
pipe-stdout.t TEST 21: read process, mix read pattern - response_body - response is expected (repeated req 0, req 0) @@ -7,7 +7,7 @@
reading 2
mo
reading any
-re
-
+r
reading all
+e
data
'
pipe-stdout.t TEST 21: read process, mix read pattern - response_body - response is expected (repeated req 1, req 0) @@ -1,13 +1,13 @@
reading any
-hello
+h
reading 3
-wor
+ell
reading line
-ld
+oworld
reading 2
mo
reading any
-re
-
+r
reading all
+e
data
'
pipe-stdout.t TEST 8: read process, pattern is read any - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
hello
-world
+w
'
pipe-stdout.t TEST 8: read process, pattern is read any - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
-hello
+h
-world
+e
'
pipe-stdout.t TEST 30: user case with read and wait - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1 @@
-ok
exit
'
pipe-stdout.t TEST 30: user case with read and wait - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1 @@
-ok
exit
'
pipe-stdout.t TEST 10: read process, pattern is read any, with limited, limit larger than read data - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
hello
-world
+w
'
pipe-stdout.t TEST 10: read process, pattern is read any, with limited, limit larger than read data - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
-hello
+h
-world
+e
'
pipe-stdout.t TEST 11: read process, pattern is read any, with limited, limit smaller than read data - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,3 @@
hell
o
-world
+w
'
pipe-stdout.t TEST 11: read process, pattern is read any, with limited, limit smaller than read data - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,3 @@
-hell
+h
-o
+e
-world
+l
'
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) Looks like you failed 1 test of 8.
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)
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) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-fetch.t TEST 2: attempt to fetch new session in lua_ctx during resumption. - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-fetch.t TEST 2: attempt to fetch new session in lua_ctx during resumption. - grep_error_log_out (req 1) got: ''
expected: 'get session error: bad session in lua context
'
ssl-session-fetch.t TEST 1: get resume session id serialized - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-fetch.t TEST 1: get resume session id serialized - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-fetch.t TEST 1: get resume session id serialized - grep_error_log_out (req 1) ''
doesn't match '(?^s:ssl_session_fetch_by_lua_block:4: session id: [a-fA-f\d]+)'
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
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_block:5: session id: [a-fA-F\d]+$)'
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-fetch.t TEST 4: attempt to resume a corrupted session - grep_error_log_out (req 1) ''
doesn't match '(?^s:^ssl_session_fetch_by_lua_block:4: session id: [a-fA-F\d]+
failed to resume session: failed to de-serialize session
ssl_session_store_by_lua_block:5: session id: [a-fA-F\d]+
$)'
ssl-session-fetch.t TEST 3: store new session, and resume it - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
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_block:5: session id: [a-fA-F\d]+)'
ssl-session-fetch.t TEST 3: store new session, and resume it - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-fetch.t TEST 3: store new session, and resume it - grep_error_log_out (req 1) ''
doesn't match '(?^s:ssl_session_fetch_by_lua_block:4: session id: [a-fA-F\d]+)'
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'ok
'
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - grep_error_log_out (req 0) ''
doesn't match '(?^s:^ssl_session_store_by_lua_block:\d+: session id: [a-fA-F\d]+$)'
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 0)
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2019/02/19 22:16:31 [error] 12480\#0: *1 [lua] content_by_lua(nginx.conf:114):33: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0) 2019/02/19 22:16:31 [debug] 12480\#0: *1 lua resume returned 0
2019/02/19 22:16:31 [debug] 12480\#0: *1 lua light thread ended normally
2019/02/19 22:16:31 [debug] 12480\#0: *1 lua deleting light thread
2019/02/19 22:16:31 [debug] 12480\#0: *1 lua capture header filter, uri "/t"
2019/02/19 22:16:31 [debug] 12480\#0: *1 malloc: 0000000008801780:16
2019/02/19 22:16:31 [debug] 12480\#0: *1 malloc: 00000000088017D0:16
2019/02/19 22:16:31 [debug] 12480\#0: *1 malloc: 0000000008801820:80
2019/02/19 22:16:31 [debug] 12480\#0: *1 malloc: 00000000088018B0:16
2019/02/19 22:16:31 [debug] 12480\#0: *1 malloc: 0000000008801900:161
'
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'ok
'
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - grep_error_log_out (req 1) ''
doesn't match '(?^s:^ssl_session_fetch_by_lua_block:\d+: session id: [a-fA-F\d]+
failed to resume session: failed to de-serialize session
ssl_session_store_by_lua_block:\d+: session id: [a-fA-F\d]+
$)'
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 1)
ssl-session-fetch.t TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2019/02/19 22:16:33 [error] 12480\#0: *3 [lua] content_by_lua(nginx.conf:114):33: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1) 2019/02/19 22:16:33 [debug] 12480\#0: *3 lua resume returned 0
2019/02/19 22:16:33 [debug] 12480\#0: *3 lua light thread ended normally
2019/02/19 22:16:33 [debug] 12480\#0: *3 lua deleting light thread
2019/02/19 22:16:33 [debug] 12480\#0: *3 lua capture header filter, uri "/t"
2019/02/19 22:16:33 [debug] 12480\#0: *3 malloc: 0000000008804F10:16
2019/02/19 22:16:33 [debug] 12480\#0: *3 malloc: 0000000008804F60:16
2019/02/19 22:16:33 [debug] 12480\#0: *3 malloc: 0000000008804FB0:80
2019/02/19 22:16:33 [debug] 12480\#0: *3 malloc: 0000000008805040:16
2019/02/19 22:16:33 [debug] 12480\#0: *3 malloc: 0000000008805090:161
'
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) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
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 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-store.t TEST 1: get new session serialized - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-store.t TEST 1: get new session serialized - pattern "(?^s:ssl_session_store_by_lua_block:4: session size: \d+)" should match a line in error.log (req 0)
ssl-session-store.t TEST 1: get new session serialized - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-store.t TEST 1: get new session serialized - pattern "(?^s:ssl_session_store_by_lua_block:4: session size: \d+)" should match a line in error.log (req 1)
ssl-session-store.t TEST 3: store the session via timer to memcached - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-store.t TEST 3: store the session via timer to memcached - pattern "(?^s:ssl_session_store_by_lua_block:32: 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:ssl_session_store_by_lua_block:34: session size: \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 - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-store.t TEST 3: store the session via timer to memcached - pattern "(?^s:ssl_session_store_by_lua_block:32: session id: [a-fA-f\d]+)" should match a line in error.log (req 1)
ssl-session-store.t TEST 3: store the session via timer to memcached - pattern "(?^s:ssl_session_store_by_lua_block:34: session size: \d+)" should match a line in error.log (req 1)
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 2: get new session id serialized - response_body - response is expected (repeated req 0, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-store.t TEST 2: get new session id serialized - pattern "(?^s:ssl_session_store_by_lua_block:4: session id: [a-fA-f\d]+)" should match a line in error.log (req 0)
ssl-session-store.t TEST 2: get new session id serialized - response_body - response is expected (repeated req 1, req 0) @@ -1,3 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-close: 1 nil
'
ssl-session-store.t TEST 2: get new session id serialized - pattern "(?^s:ssl_session_store_by_lua_block:4: session id: [a-fA-f\d]+)" should match a line in error.log (req 1)
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,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - pattern "Using IPv4 address: 127.0.0.1" should match a line in error.log (req 0)
ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - pattern "Using IPv4 address: 127.0.0.1" should match a line in error.log (req 1)
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,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - pattern "Using IPv6 address: 0.0.0.1" should match a line in error.log (req 0)
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,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - pattern "Using IPv6 address: 0.0.0.1" should match a line in error.log (req 1)
ssl.t TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 13: tls version - TLSv1.2 - pattern "got TLS1 version: TLSv1.2," should match a line in error.log (req 0)
ssl.t TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 13: tls version - TLSv1.2 - pattern "got TLS1 version: TLSv1.2," should match a line in error.log (req 1)
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'ok
'
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 0)
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "subject=/C=US/ST=California/L=San Francisco/O=OpenResty/OU=OpenResty/CN=test.com/emailAddress=agentzh@gmail.com" should match a line in error.log (req 0)
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2019/02/19 22:16:51 [error] 12504\#0: *1 [lua] content_by_lua(nginx.conf:111):25: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0) 2019/02/19 22:16:51 [debug] 12504\#0: *1 lua resume returned 0
2019/02/19 22:16:51 [debug] 12504\#0: *1 lua light thread ended normally
2019/02/19 22:16:51 [debug] 12504\#0: *1 lua deleting light thread
2019/02/19 22:16:51 [debug] 12504\#0: *1 lua capture header filter, uri "/t"
2019/02/19 22:16:51 [debug] 12504\#0: *1 malloc: 00000000087FF8D0:16
2019/02/19 22:16:51 [debug] 12504\#0: *1 malloc: 00000000087FF920:16
2019/02/19 22:16:51 [debug] 12504\#0: *1 malloc: 00000000087FF970:80
2019/02/19 22:16:51 [debug] 12504\#0: *1 malloc: 00000000087FFA00:16
2019/02/19 22:16:51 [debug] 12504\#0: *1 malloc: 00000000087FFA50:161
'
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'ok
'
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 1)
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "subject=/C=US/ST=California/L=San Francisco/O=OpenResty/OU=OpenResty/CN=test.com/emailAddress=agentzh@gmail.com" should match a line in error.log (req 1)
ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2019/02/19 22:16:53 [error] 12504\#0: *3 [lua] content_by_lua(nginx.conf:111):25: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1) 2019/02/19 22:16:53 [debug] 12504\#0: *3 lua resume returned 0
2019/02/19 22:16:53 [debug] 12504\#0: *3 lua light thread ended normally
2019/02/19 22:16:53 [debug] 12504\#0: *3 lua deleting light thread
2019/02/19 22:16:53 [debug] 12504\#0: *3 lua capture header filter, uri "/t"
2019/02/19 22:16:53 [debug] 12504\#0: *3 malloc: 0000000008803140:16
2019/02/19 22:16:53 [debug] 12504\#0: *3 malloc: 0000000008803190:16
2019/02/19 22:16:53 [debug] 12504\#0: *3 malloc: 00000000088031E0:80
2019/02/19 22:16:53 [debug] 12504\#0: *3 malloc: 0000000008803270:16
2019/02/19 22:16:53 [debug] 12504\#0: *3 malloc: 00000000088032C0:161
'
ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509\(\) failed)" should match a line in error.log (req 0)
ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:16:55 [crit] 12513\#0: *1 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0) 2019/02/19 22:16:55 [debug] 12513\#0: *1 lua tcp socket error retval handler
2019/02/19 22:16:55 [debug] 12513\#0: *1 lua finalize socket
2019/02/19 22:16:55 [debug] 12513\#0: *1 lua http cleanup free: 00000000087FD690
2019/02/19 22:16:55 [debug] 12513\#0: *1 poll del event: fd:9 ev:1
2019/02/19 22:16:55 [debug] 12513\#0: *1 lua close socket connection
2019/02/19 22:16:55 [debug] 12513\#0: *1 free: 00000000087FE540, unused: 0
2019/02/19 22:16:55 [debug] 12513\#0: *1 reusable connection: 0
2019/02/19 22:16:55 [debug] 12513\#0: *1 malloc: 00000000088141D0:16
2019/02/19 22:16:55 [debug] 12513\#0: *1 malloc: 0000000008814220:16
'
ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509\(\) failed)" should match a line in error.log (req 1)
ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:16:55 [crit] 12513\#0: *4 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1) 2019/02/19 22:16:55 [debug] 12513\#0: *4 lua tcp socket error retval handler
2019/02/19 22:16:55 [debug] 12513\#0: *4 lua finalize socket
2019/02/19 22:16:55 [debug] 12513\#0: *4 lua http cleanup free: 0000000008817E60
2019/02/19 22:16:55 [debug] 12513\#0: *4 poll del event: fd:9 ev:1
2019/02/19 22:16:55 [debug] 12513\#0: *4 lua close socket connection
2019/02/19 22:16:55 [debug] 12513\#0: *4 free: 0000000008818CB0, unused: 0
2019/02/19 22:16:55 [debug] 12513\#0: *4 reusable connection: 0
2019/02/19 22:16:55 [debug] 12513\#0: *4 malloc: 000000000882E8D0:16
2019/02/19 22:16:55 [debug] 12513\#0: *4 malloc: 000000000882E920:16
'
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,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 4: read SNI name via ssl.server_name() when no SNI name specified - pattern "read SNI name from Lua: nil, type: nil" should match a line in error.log (req 0)
ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 4: read SNI name via ssl.server_name() when no SNI name specified - pattern "read SNI name from Lua: nil, type: nil" should match a line in error.log (req 1)
ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "(?^:\[error\] .*? failed to parse pem key: PEM_read_bio_PrivateKey\(\) failed)" should match a line in error.log (req 0)
ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:17:00 [crit] 12515\#0: *1 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0) 2019/02/19 22:17:00 [debug] 12515\#0: *1 lua tcp socket error retval handler
2019/02/19 22:17:00 [debug] 12515\#0: *1 lua finalize socket
2019/02/19 22:17:00 [debug] 12515\#0: *1 lua http cleanup free: 00000000087FD680
2019/02/19 22:17:00 [debug] 12515\#0: *1 poll del event: fd:9 ev:1
2019/02/19 22:17:00 [debug] 12515\#0: *1 lua close socket connection
2019/02/19 22:17:00 [debug] 12515\#0: *1 free: 00000000087FE530, unused: 0
2019/02/19 22:17:00 [debug] 12515\#0: *1 reusable connection: 0
2019/02/19 22:17:00 [debug] 12515\#0: *1 malloc: 00000000088141C0:16
2019/02/19 22:17:00 [debug] 12515\#0: *1 malloc: 0000000008814210:16
'
ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "(?^:\[error\] .*? failed to parse pem key: PEM_read_bio_PrivateKey\(\) failed)" should match a line in error.log (req 1)
ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:17:00 [crit] 12515\#0: *4 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1) 2019/02/19 22:17:00 [debug] 12515\#0: *4 lua tcp socket error retval handler
2019/02/19 22:17:00 [debug] 12515\#0: *4 lua finalize socket
2019/02/19 22:17:00 [debug] 12515\#0: *4 lua http cleanup free: 0000000008817E50
2019/02/19 22:17:00 [debug] 12515\#0: *4 poll del event: fd:9 ev:1
2019/02/19 22:17:00 [debug] 12515\#0: *4 lua close socket connection
2019/02/19 22:17:00 [debug] 12515\#0: *4 free: 0000000008818CA0, unused: 0
2019/02/19 22:17:00 [debug] 12515\#0: *4 reusable connection: 0
2019/02/19 22:17:00 [debug] 12515\#0: *4 malloc: 000000000882E8C0:16
2019/02/19 22:17:00 [debug] 12515\#0: *4 malloc: 000000000882E910:16
'
ssl.t TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 0, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 3: read SNI name via ssl.server_name() - pattern "read SNI name from Lua: test.com" should match a line in error.log (req 0)
ssl.t TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 3: read SNI name via ssl.server_name() - pattern "read SNI name from Lua: test.com" should match a line in error.log (req 1)
ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509_AUX\(\) failed)" should match a line in error.log (req 0)
ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:17:04 [crit] 12517\#0: *1 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0) 2019/02/19 22:17:04 [debug] 12517\#0: *1 lua tcp socket error retval handler
2019/02/19 22:17:04 [debug] 12517\#0: *1 lua finalize socket
2019/02/19 22:17:04 [debug] 12517\#0: *1 lua http cleanup free: 00000000087FD690
2019/02/19 22:17:04 [debug] 12517\#0: *1 poll del event: fd:9 ev:1
2019/02/19 22:17:04 [debug] 12517\#0: *1 lua close socket connection
2019/02/19 22:17:04 [debug] 12517\#0: *1 free: 00000000087FE540, unused: 0
2019/02/19 22:17:04 [debug] 12517\#0: *1 reusable connection: 0
2019/02/19 22:17:04 [debug] 12517\#0: *1 malloc: 00000000088141D0:16
2019/02/19 22:17:04 [debug] 12517\#0: *1 malloc: 0000000008814220:16
'
ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509_AUX\(\) failed)" should match a line in error.log (req 1)
ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:17:04 [crit] 12517\#0: *4 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1) 2019/02/19 22:17:04 [debug] 12517\#0: *4 lua tcp socket error retval handler
2019/02/19 22:17:04 [debug] 12517\#0: *4 lua finalize socket
2019/02/19 22:17:04 [debug] 12517\#0: *4 lua http cleanup free: 0000000008817E60
2019/02/19 22:17:04 [debug] 12517\#0: *4 poll del event: fd:9 ev:1
2019/02/19 22:17:04 [debug] 12517\#0: *4 lua close socket connection
2019/02/19 22:17:04 [debug] 12517\#0: *4 free: 0000000008818CB0, unused: 0
2019/02/19 22:17:04 [debug] 12517\#0: *4 reusable connection: 0
2019/02/19 22:17:04 [debug] 12517\#0: *4 malloc: 000000000882E8D0:16
2019/02/19 22:17:04 [debug] 12517\#0: *4 malloc: 000000000882E920:16
'
ssl.t TEST 2: set DER cert and private key - response_body - response is expected (repeated req 0, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 2: set DER cert and private key - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 1: clear certs - pattern "sslv3 alert handshake failure" should match a line in error.log (req 0)
ssl.t TEST 1: clear certs - pattern "sslv3 alert handshake failure" should match a line in error.log (req 1)
ssl.t TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 0, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 8: set DER cert chain - response_body - response is expected (repeated req 0, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 8: set DER cert chain - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 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,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - pattern "(?^:Using unix socket file .*?nginx\.sock)" should match a line in error.log (req 0)
ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - pattern "(?^:Using unix socket file .*?nginx\.sock)" should match a line in error.log (req 1)
ssl.t TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 11: tls version - TLSv1 - pattern "got TLS1 version: TLSv1," should match a line in error.log (req 0)
ssl.t TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 11: tls version - TLSv1 - pattern "got TLS1 version: TLSv1," should match a line in error.log (req 1)
ssl.t TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 0, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 20: read client addr via ssl.raw_client_addr() - pattern "client ip: 127.0.0.1" should match a line in error.log (req 0)
ssl.t TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 20: read client addr via ssl.raw_client_addr() - pattern "client ip: 127.0.0.1" should match a line in error.log (req 1)
ssl.t TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 0, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 10: tls version - SSLv3 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 10: tls version - SSLv3 - pattern "got TLS1 version: SSLv3," should match a line in error.log (req 0)
ssl.t TEST 10: tls version - SSLv3 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 10: tls version - SSLv3 - pattern "got TLS1 version: SSLv3," should match a line in error.log (req 1)
ssl.t TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 0, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 1, req 0) @@ -1,11 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-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 TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - grep_error_log_out (req 0) @@ -1,4 +0,0 @@
-http lua semaphore new
-http lua semaphore wait
-http lua semaphore wait yielding
-http lua semaphore post
'
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - pattern "ssl cert by lua done" should match a line in error.log (req 0)
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - grep_error_log_out (req 1) @@ -1,4 +0,0 @@
-http lua semaphore new
-http lua semaphore wait
-http lua semaphore wait yielding
-http lua semaphore post
'
ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - pattern "ssl cert by lua done" should match a line in error.log (req 1)
ssl.t TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 12: tls version - TLSv1.1 - pattern "got TLS1 version: TLSv1.1," should match a line in error.log (req 0)
ssl.t TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
ssl.t TEST 12: tls version - TLSv1.1 - pattern "got TLS1 version: TLSv1.1," should match a line in error.log (req 1)
stream/errlog-raw-log.t nginx: [error] hello world from init_by_lua
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/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/ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509\(\) failed)" should match a line in error.log (req 0)
stream/ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:38 [alert] 12947\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:38 [debug] 12947\#0: *3 SSL_do_handshake: -1
2019/02/19 22:26:38 [debug] 12947\#0: *3 SSL_get_error: 1
2019/02/19 22:26:38 [crit] 12947\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:26:38 [debug] 12947\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:38 [debug] 12947\#0: *3 stream lua finalize socket
2019/02/19 22:26:38 [debug] 12947\#0: *3 lua stream cleanup free: 000000000881EB00
2019/02/19 22:26:38 [debug] 12947\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:38 [debug] 12947\#0: *3 lua close socket connection
2019/02/19 22:26:38 [debug] 12947\#0: *3 free: 000000000881F080, unused: 0
'
stream/ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:26:38 [crit] 12947\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:38 [debug] 12947\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:38 [debug] 12947\#0: *3 stream lua finalize socket
2019/02/19 22:26:38 [debug] 12947\#0: *3 lua stream cleanup free: 000000000881EB00
2019/02/19 22:26:38 [debug] 12947\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:38 [debug] 12947\#0: *3 lua close socket connection
2019/02/19 22:26:38 [debug] 12947\#0: *3 free: 000000000881F080, unused: 0
2019/02/19 22:26:38 [debug] 12947\#0: *3 reusable connection: 0
2019/02/19 22:26:38 [debug] 12947\#0: *3 lua reuse free buf chain, but reallocate memory because 45 >= 13, cl:000000000881EC80, p:000000000881EE00
2019/02/19 22:26:38 [debug] 12947\#0: *3 free: 000000000881EE00
'
stream/ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509\(\) failed)" should match a line in error.log (req 1)
stream/ssl.t TEST 18: parse PEM cert and key to cdata (bad cert 2 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:26:38 [crit] 12947\#0: *8 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 1) 2019/02/19 22:26:38 [debug] 12947\#0: *8 stream lua tcp socket error retval handler
2019/02/19 22:26:38 [debug] 12947\#0: *8 stream lua finalize socket
2019/02/19 22:26:38 [debug] 12947\#0: *8 lua stream cleanup free: 0000000008851290
2019/02/19 22:26:38 [debug] 12947\#0: *8 poll del event: fd:12 ev:1
2019/02/19 22:26:38 [debug] 12947\#0: *8 lua close socket connection
2019/02/19 22:26:38 [debug] 12947\#0: *8 free: 00000000088517B0, unused: 0
2019/02/19 22:26:38 [debug] 12947\#0: *8 reusable connection: 0
2019/02/19 22:26:38 [debug] 12947\#0: *8 lua reuse free buf chain, but reallocate memory because 45 >= 13, cl:00000000088513B0, p:0000000008851530
2019/02/19 22:26:38 [debug] 12947\#0: *8 free: 0000000008851530
'
stream/ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509_AUX\(\) failed)" should match a line in error.log (req 0)
stream/ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:40 [alert] 12948\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:40 [debug] 12948\#0: *3 SSL_do_handshake: -1
2019/02/19 22:26:40 [debug] 12948\#0: *3 SSL_get_error: 1
2019/02/19 22:26:40 [crit] 12948\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:26:40 [debug] 12948\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:40 [debug] 12948\#0: *3 stream lua finalize socket
2019/02/19 22:26:40 [debug] 12948\#0: *3 lua stream cleanup free: 000000000881EB00
2019/02/19 22:26:40 [debug] 12948\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:40 [debug] 12948\#0: *3 lua close socket connection
2019/02/19 22:26:40 [debug] 12948\#0: *3 free: 000000000881F080, unused: 0
'
stream/ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:26:40 [crit] 12948\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:40 [debug] 12948\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:40 [debug] 12948\#0: *3 stream lua finalize socket
2019/02/19 22:26:40 [debug] 12948\#0: *3 lua stream cleanup free: 000000000881EB00
2019/02/19 22:26:40 [debug] 12948\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:40 [debug] 12948\#0: *3 lua close socket connection
2019/02/19 22:26:40 [debug] 12948\#0: *3 free: 000000000881F080, unused: 0
2019/02/19 22:26:40 [debug] 12948\#0: *3 reusable connection: 0
2019/02/19 22:26:40 [debug] 12948\#0: *3 lua reuse free buf chain, but reallocate memory because 45 >= 13, cl:000000000881EC80, p:000000000881EE00
2019/02/19 22:26:40 [debug] 12948\#0: *3 free: 000000000881EE00
'
stream/ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "(?^:\[error\] .*? failed to parse pem cert: PEM_read_bio_X509_AUX\(\) failed)" should match a line in error.log (req 1)
stream/ssl.t TEST 17: parse PEM cert and key to cdata (bad cert 0 in the chain) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:26:40 [crit] 12948\#0: *8 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 1) 2019/02/19 22:26:40 [debug] 12948\#0: *8 stream lua tcp socket error retval handler
2019/02/19 22:26:40 [debug] 12948\#0: *8 stream lua finalize socket
2019/02/19 22:26:40 [debug] 12948\#0: *8 lua stream cleanup free: 0000000008851290
2019/02/19 22:26:40 [debug] 12948\#0: *8 poll del event: fd:12 ev:1
2019/02/19 22:26:40 [debug] 12948\#0: *8 lua close socket connection
2019/02/19 22:26:40 [debug] 12948\#0: *8 free: 00000000088517B0, unused: 0
2019/02/19 22:26:40 [debug] 12948\#0: *8 reusable connection: 0
2019/02/19 22:26:40 [debug] 12948\#0: *8 lua reuse free buf chain, but reallocate memory because 45 >= 13, cl:00000000088513B0, p:0000000008851530
2019/02/19 22:26:40 [debug] 12948\#0: *8 free: 0000000008851530
'
stream/ssl.t TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 11: tls version - TLSv1 - pattern "got TLS1 version: TLSv1," should match a line in error.log (req 0)
stream/ssl.t TEST 11: tls version - TLSv1 - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:42 [alert] 12949\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 127.0.0.2:23456" (req 0) 2019/02/19 22:26:42 [debug] 12949\#0: *5 SSL_do_handshake: -1
2019/02/19 22:26:42 [debug] 12949\#0: *5 SSL_get_error: 2
2019/02/19 22:26:42 [debug] 12949\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:26:42 [debug] 12949\#0: *5 event timer add: 13: 60000:10266699
2019/02/19 22:26:42 [debug] 12949\#0: posted event 0000000008815610
2019/02/19 22:26:42 [debug] 12949\#0: *3 delete posted event 0000000008815610
2019/02/19 22:26:42 [debug] 12949\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:26:42 [debug] 12949\#0: *3 event timer del: 12: 10209667
2019/02/19 22:26:42 [debug] 12949\#0: *3 stream lua tcp socket connected
'
stream/ssl.t TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 11: tls version - TLSv1 - pattern "got TLS1 version: TLSv1," should match a line in error.log (req 1)
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 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - pattern "Using IPv6 address: 0.0.0.1" should match a line in error.log (req 0)
stream/ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:45 [alert] 12952\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: ::1, server: [::1]:12345" (req 0) 2019/02/19 22:26:45 [debug] 12952\#0: *5 SSL_do_handshake: -1
2019/02/19 22:26:45 [debug] 12952\#0: *5 SSL_get_error: 2
2019/02/19 22:26:45 [debug] 12952\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:26:45 [debug] 12952\#0: *5 event timer add: 13: 60000:10268947
2019/02/19 22:26:45 [debug] 12952\#0: posted event 0000000008816C80
2019/02/19 22:26:45 [debug] 12952\#0: *3 delete posted event 0000000008816C80
2019/02/19 22:26:45 [debug] 12952\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:26:45 [debug] 12952\#0: *3 event timer del: 12: 10211915
2019/02/19 22:26:45 [debug] 12952\#0: *3 stream lua tcp socket connected
'
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 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - pattern "Using IPv6 address: 0.0.0.1" should match a line in error.log (req 1)
stream/ssl.t TEST 8: set DER cert chain - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 8: set DER cert chain - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:47 [alert] 12953\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:47 [debug] 12953\#0: *3 SSL_do_handshake: -1
2019/02/19 22:26:47 [debug] 12953\#0: *3 SSL_get_error: 1
2019/02/19 22:26:47 [crit] 12953\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:26:47 [debug] 12953\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:47 [debug] 12953\#0: *3 stream lua finalize socket
2019/02/19 22:26:47 [debug] 12953\#0: *3 lua stream cleanup free: 000000000881E320
2019/02/19 22:26:47 [debug] 12953\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:47 [debug] 12953\#0: *3 lua close socket connection
2019/02/19 22:26:47 [debug] 12953\#0: *3 free: 000000000881E8A0, unused: 0
'
stream/ssl.t TEST 8: set DER cert chain - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - grep_error_log_out (req 0) @@ -1,4 +0,0 @@
-stream lua semaphore new
-stream lua semaphore wait
-stream lua semaphore wait yielding
-stream lua semaphore post
'
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - pattern "ssl cert by lua done" should match a line in error.log (req 0)
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:49 [alert] 12954\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 127.0.0.2:23456" (req 0) 2019/02/19 22:26:49 [debug] 12954\#0: *5 SSL_do_handshake: -1
2019/02/19 22:26:49 [debug] 12954\#0: *5 SSL_get_error: 2
2019/02/19 22:26:49 [debug] 12954\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:26:49 [debug] 12954\#0: *5 event timer add: 13: 60000:10273431
2019/02/19 22:26:49 [debug] 12954\#0: posted event 0000000008815690
2019/02/19 22:26:49 [debug] 12954\#0: *3 delete posted event 0000000008815690
2019/02/19 22:26:49 [debug] 12954\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:26:49 [debug] 12954\#0: *3 event timer del: 12: 10216399
2019/02/19 22:26:49 [debug] 12954\#0: *3 stream lua tcp socket connected
'
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - grep_error_log_out (req 1) @@ -1,4 +0,0 @@
-stream lua semaphore new
-stream lua semaphore wait
-stream lua semaphore wait yielding
-stream lua semaphore post
'
stream/ssl.t TEST 14: ngx.semaphore in ssl_certificate_by_lua* - pattern "ssl cert by lua done" should match a line in error.log (req 1)
stream/ssl.t TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 15: read PEM key chain but set DER key chain - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:51 [alert] 12955\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:51 [debug] 12955\#0: *3 SSL_do_handshake: -1
2019/02/19 22:26:51 [debug] 12955\#0: *3 SSL_get_error: 1
2019/02/19 22:26:51 [crit] 12955\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:26:51 [debug] 12955\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:51 [debug] 12955\#0: *3 stream lua finalize socket
2019/02/19 22:26:51 [debug] 12955\#0: *3 lua stream cleanup free: 000000000881EBB0
2019/02/19 22:26:51 [debug] 12955\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:51 [debug] 12955\#0: *3 lua close socket connection
2019/02/19 22:26:51 [debug] 12955\#0: *3 free: 000000000881F130, unused: 0
'
stream/ssl.t TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
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 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - pattern "read SNI name from Lua: nil, type: nil" should match a line in error.log (req 0)
stream/ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:54 [alert] 12956\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:54 [debug] 12956\#0: *3 SSL_do_handshake: -1
2019/02/19 22:26:54 [debug] 12956\#0: *3 SSL_get_error: 1
2019/02/19 22:26:54 [crit] 12956\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:26:54 [debug] 12956\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:54 [debug] 12956\#0: *3 stream lua finalize socket
2019/02/19 22:26:54 [debug] 12956\#0: *3 lua stream cleanup free: 000000000881EA70
2019/02/19 22:26:54 [debug] 12956\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:54 [debug] 12956\#0: *3 lua close socket connection
2019/02/19 22:26:54 [debug] 12956\#0: *3 free: 000000000881EFF0, unused: 0
'
stream/ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 4: read SNI name via ssl.server_name() when no SNI name specified - pattern "read SNI name from Lua: nil, type: nil" should match a line in error.log (req 1)
stream/ssl.t TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 9: read PEM cert chain but set DER cert chain - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:56 [alert] 12957\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:56 [debug] 12957\#0: *3 SSL_do_handshake: -1
2019/02/19 22:26:56 [debug] 12957\#0: *3 SSL_get_error: 1
2019/02/19 22:26:56 [crit] 12957\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:26:56 [debug] 12957\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:56 [debug] 12957\#0: *3 stream lua finalize socket
2019/02/19 22:26:56 [debug] 12957\#0: *3 lua stream cleanup free: 000000000881E890
2019/02/19 22:26:56 [debug] 12957\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:56 [debug] 12957\#0: *3 lua close socket connection
2019/02/19 22:26:56 [debug] 12957\#0: *3 free: 000000000881EE10, unused: 0
'
stream/ssl.t TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 2: set DER cert and private key - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 2: set DER cert and private key - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:26:58 [alert] 12958\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:26:58 [debug] 12958\#0: *3 SSL_do_handshake: -1
2019/02/19 22:26:58 [debug] 12958\#0: *3 SSL_get_error: 1
2019/02/19 22:26:58 [crit] 12958\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:26:58 [debug] 12958\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:26:58 [debug] 12958\#0: *3 stream lua finalize socket
2019/02/19 22:26:58 [debug] 12958\#0: *3 lua stream cleanup free: 000000000881EE00
2019/02/19 22:26:58 [debug] 12958\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:26:58 [debug] 12958\#0: *3 lua close socket connection
2019/02/19 22:26:58 [debug] 12958\#0: *3 free: 000000000881F380, unused: 0
'
stream/ssl.t TEST 2: set DER cert and private key - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
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 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - pattern "Using IPv4 address: 127.0.0.1" should match a line in error.log (req 0)
stream/ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:00 [alert] 12959\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 127.0.0.1:12345" (req 0) 2019/02/19 22:27:00 [debug] 12959\#0: *5 SSL_do_handshake: -1
2019/02/19 22:27:00 [debug] 12959\#0: *5 SSL_get_error: 2
2019/02/19 22:27:00 [debug] 12959\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:27:00 [debug] 12959\#0: *5 event timer add: 13: 60000:10284630
2019/02/19 22:27:00 [debug] 12959\#0: posted event 0000000008816C60
2019/02/19 22:27:00 [debug] 12959\#0: *3 delete posted event 0000000008816C60
2019/02/19 22:27:00 [debug] 12959\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:27:00 [debug] 12959\#0: *3 event timer del: 12: 10227594
2019/02/19 22:27:00 [debug] 12959\#0: *3 stream lua tcp socket connected
'
stream/ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - pattern "Using IPv4 address: 127.0.0.1" should match a line in error.log (req 1)
stream/ssl.t TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 13: tls version - TLSv1.2 - pattern "got TLS1 version: TLSv1.2," should match a line in error.log (req 0)
stream/ssl.t TEST 13: tls version - TLSv1.2 - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:03 [alert] 12960\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 127.0.0.2:23456" (req 0) 2019/02/19 22:27:03 [debug] 12960\#0: *5 SSL_do_handshake: -1
2019/02/19 22:27:03 [debug] 12960\#0: *5 SSL_get_error: 2
2019/02/19 22:27:03 [debug] 12960\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:27:03 [debug] 12960\#0: *5 event timer add: 13: 60000:10286874
2019/02/19 22:27:03 [debug] 12960\#0: posted event 0000000008815610
2019/02/19 22:27:03 [debug] 12960\#0: *3 delete posted event 0000000008815610
2019/02/19 22:27:03 [debug] 12960\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:27:03 [debug] 12960\#0: *3 event timer del: 12: 10229842
2019/02/19 22:27:03 [debug] 12960\#0: *3 stream lua tcp socket connected
'
stream/ssl.t TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 13: tls version - TLSv1.2 - pattern "got TLS1 version: TLSv1.2," should match a line in error.log (req 1)
stream/ssl.t TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 12: tls version - TLSv1.1 - pattern "got TLS1 version: TLSv1.1," should match a line in error.log (req 0)
stream/ssl.t TEST 12: tls version - TLSv1.1 - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:05 [alert] 12961\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 127.0.0.2:23456" (req 0) 2019/02/19 22:27:05 [debug] 12961\#0: *5 SSL_do_handshake: -1
2019/02/19 22:27:05 [debug] 12961\#0: *5 SSL_get_error: 2
2019/02/19 22:27:05 [debug] 12961\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:27:05 [debug] 12961\#0: *5 event timer add: 13: 60000:10289110
2019/02/19 22:27:05 [debug] 12961\#0: posted event 0000000008815610
2019/02/19 22:27:05 [debug] 12961\#0: *3 delete posted event 0000000008815610
2019/02/19 22:27:05 [debug] 12961\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:27:05 [debug] 12961\#0: *3 event timer del: 12: 10232078
2019/02/19 22:27:05 [debug] 12961\#0: *3 stream lua tcp socket connected
'
stream/ssl.t TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 12: tls version - TLSv1.1 - pattern "got TLS1 version: TLSv1.1," should match a line in error.log (req 1)
stream/ssl.t TEST 10: tls version - SSLv3 - response_body - response is expected (repeated req 0, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 10: tls version - SSLv3 - pattern "got TLS1 version: SSLv3," should match a line in error.log (req 0)
stream/ssl.t TEST 10: tls version - SSLv3 - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:07 [alert] 12962\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 127.0.0.2:23456" (req 0) 2019/02/19 22:27:07 [debug] 12962\#0: *5 SSL_do_handshake: -1
2019/02/19 22:27:07 [debug] 12962\#0: *5 SSL_get_error: 2
2019/02/19 22:27:07 [debug] 12962\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:27:07 [debug] 12962\#0: *5 event timer add: 13: 60000:10291350
2019/02/19 22:27:07 [debug] 12962\#0: posted event 0000000008815610
2019/02/19 22:27:07 [debug] 12962\#0: *3 delete posted event 0000000008815610
2019/02/19 22:27:07 [debug] 12962\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:27:07 [debug] 12962\#0: *3 event timer del: 12: 10234318
2019/02/19 22:27:07 [debug] 12962\#0: *3 stream lua tcp socket connected
'
stream/ssl.t TEST 10: tls version - SSLv3 - response_body - response is expected (repeated req 1, req 0) @@ -1,2 +1,2 @@
connected: 1
-ssl handshake: boolean
+failed to do SSL handshake: handshake failed
'
stream/ssl.t TEST 10: tls version - SSLv3 - pattern "got TLS1 version: SSLv3," should match a line in error.log (req 1)
stream/ssl.t TEST 1: clear certs - pattern "sslv3 alert handshake failure" should match a line in error.log (req 0)
stream/ssl.t TEST 1: clear certs - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:09 [alert] 12963\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:27:09 [debug] 12963\#0: *3 SSL_do_handshake: -1
2019/02/19 22:27:09 [debug] 12963\#0: *3 SSL_get_error: 1
2019/02/19 22:27:09 [crit] 12963\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:27:09 [debug] 12963\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:27:09 [debug] 12963\#0: *3 stream lua finalize socket
2019/02/19 22:27:09 [debug] 12963\#0: *3 lua stream cleanup free: 000000000881E960
2019/02/19 22:27:09 [debug] 12963\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:27:09 [debug] 12963\#0: *3 lua close socket connection
2019/02/19 22:27:09 [debug] 12963\#0: *3 free: 000000000881EEE0, unused: 0
'
stream/ssl.t TEST 1: clear certs - pattern "sslv3 alert handshake failure" should match a line in error.log (req 1)
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 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 20: read client addr via ssl.raw_client_addr() - pattern "client ip: 127.0.0.1" should match a line in error.log (req 0)
stream/ssl.t TEST 20: read client addr via ssl.raw_client_addr() - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:11 [alert] 12964\#0: *5 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 127.0.0.1:12345" (req 0) 2019/02/19 22:27:11 [debug] 12964\#0: *5 SSL_do_handshake: -1
2019/02/19 22:27:11 [debug] 12964\#0: *5 SSL_get_error: 2
2019/02/19 22:27:11 [debug] 12964\#0: *5 poll add event: fd:13 ev:1
2019/02/19 22:27:11 [debug] 12964\#0: *5 event timer add: 13: 60000:10295830
2019/02/19 22:27:11 [debug] 12964\#0: posted event 0000000008815BF0
2019/02/19 22:27:11 [debug] 12964\#0: *3 delete posted event 0000000008815BF0
2019/02/19 22:27:11 [debug] 12964\#0: *3 stream lua tcp socket handler: wev 1
2019/02/19 22:27:11 [debug] 12964\#0: *3 event timer del: 12: 10238794
2019/02/19 22:27:11 [debug] 12964\#0: *3 stream lua tcp socket connected
'
stream/ssl.t TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 20: read client addr via ssl.raw_client_addr() - pattern "client ip: 127.0.0.1" should match a line in error.log (req 1)
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 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - pattern "(?^:Using unix socket file .*?nginx\.sock)" should match a line in error.log (req 0)
stream/ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:14 [alert] 12965\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:27:14 [debug] 12965\#0: *3 SSL_do_handshake: -1
2019/02/19 22:27:14 [debug] 12965\#0: *3 SSL_get_error: 1
2019/02/19 22:27:14 [crit] 12965\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:27:14 [debug] 12965\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:27:14 [debug] 12965\#0: *3 stream lua finalize socket
2019/02/19 22:27:14 [debug] 12965\#0: *3 lua stream cleanup free: 000000000881FCA0
2019/02/19 22:27:14 [debug] 12965\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:27:14 [debug] 12965\#0: *3 lua close socket connection
2019/02/19 22:27:14 [debug] 12965\#0: *3 free: 0000000008820220, unused: 0
'
stream/ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - pattern "(?^:Using unix socket file .*?nginx\.sock)" should match a line in error.log (req 1)
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 0, req 0) got: ''
expected: 'ok
'
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 0)
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "subject=/C=US/ST=California/L=San Francisco/O=OpenResty/OU=OpenResty/CN=test.com/emailAddress=agentzh@gmail.com" should match a line in error.log (req 0)
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:16 [alert] 12966\#0: *4 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html) while SSL handshaking, client: 127.0.0.1, server: 0.0.0.0:4433" (req 0) 2019/02/19 22:27:16 [debug] 12966\#0: *4 SSL_do_handshake: -1
2019/02/19 22:27:16 [debug] 12966\#0: *4 SSL_get_error: 2
2019/02/19 22:27:16 [debug] 12966\#0: *4 poll add event: fd:13 ev:1
2019/02/19 22:27:16 [debug] 12966\#0: *4 event timer add: 13: 60000:10300342
2019/02/19 22:27:16 [debug] 12966\#0: *3 event timer del: 0: 10240342
2019/02/19 22:27:16 [debug] 12966\#0: *3 stream lua sleep timer expired
2019/02/19 22:27:16 [debug] 12966\#0: *3 lua run thread, top:8
2019/02/19 22:27:16 [debug] 12966\#0: fetching key "handshake" in shared dict "done"
2019/02/19 22:27:16 [debug] 12966\#0: shmtx lock
'
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2019/02/19 22:27:18 [error] 12966\#0: *3 stream [lua] content_by_lua(nginx.conf:89):25: openssl client handshake timeout, client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:27:18 [debug] 12966\#0: *3 lua resume returned 0
2019/02/19 22:27:18 [debug] 12966\#0: *3 lua light thread ended normally
2019/02/19 22:27:18 [debug] 12966\#0: *3 lua deleting light thread
2019/02/19 22:27:18 [debug] 12966\#0: *3 lua run thread returned 0
2019/02/19 22:27:18 [debug] 12966\#0: *3 finalize stream request: 0
2019/02/19 22:27:18 [debug] 12966\#0: *3 finalize stream session: 200
2019/02/19 22:27:18 [debug] 12966\#0: *3 stream log handler
2019/02/19 22:27:18 [debug] 12966\#0: *3 close stream connection: 11
2019/02/19 22:27:18 [debug] 12966\#0: *3 reusable connection: 0
'
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 1, req 0) got: ''
expected: 'ok
'
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 1)
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "subject=/C=US/ST=California/L=San Francisco/O=OpenResty/OU=OpenResty/CN=test.com/emailAddress=agentzh@gmail.com" should match a line in error.log (req 1)
stream/ssl.t TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2019/02/19 22:27:20 [error] 12966\#0: *7 stream [lua] content_by_lua(nginx.conf:89):25: openssl client handshake timeout, client: 127.0.0.1, server: 0.0.0.0:1985" (req 1) 2019/02/19 22:27:20 [debug] 12966\#0: *7 lua resume returned 0
2019/02/19 22:27:20 [debug] 12966\#0: *7 lua light thread ended normally
2019/02/19 22:27:20 [debug] 12966\#0: *7 lua deleting light thread
2019/02/19 22:27:20 [debug] 12966\#0: *7 lua run thread returned 0
2019/02/19 22:27:20 [debug] 12966\#0: *7 finalize stream request: 0
2019/02/19 22:27:20 [debug] 12966\#0: *7 finalize stream session: 200
2019/02/19 22:27:20 [debug] 12966\#0: *7 stream log handler
2019/02/19 22:27:20 [debug] 12966\#0: *7 close stream connection: 11
2019/02/19 22:27:20 [debug] 12966\#0: *7 reusable connection: 0
'
stream/ssl.t TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 3: read SNI name via ssl.server_name() - pattern "read SNI name from Lua: test.com" should match a line in error.log (req 0)
stream/ssl.t TEST 3: read SNI name via ssl.server_name() - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:22 [alert] 12975\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:27:22 [debug] 12975\#0: *3 SSL_do_handshake: -1
2019/02/19 22:27:22 [debug] 12975\#0: *3 SSL_get_error: 1
2019/02/19 22:27:22 [crit] 12975\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:27:22 [debug] 12975\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:27:22 [debug] 12975\#0: *3 stream lua finalize socket
2019/02/19 22:27:22 [debug] 12975\#0: *3 lua stream cleanup free: 000000000881EA60
2019/02/19 22:27:22 [debug] 12975\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:27:22 [debug] 12975\#0: *3 lua close socket connection
2019/02/19 22:27:22 [debug] 12975\#0: *3 free: 000000000881EFE0, unused: 0
'
stream/ssl.t TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 3: read SNI name via ssl.server_name() - pattern "read SNI name from Lua: test.com" should match a line in error.log (req 1)
stream/ssl.t TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 0, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 16: parse PEM cert and key to cdata - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:24 [alert] 12976\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:27:24 [debug] 12976\#0: *3 SSL_do_handshake: -1
2019/02/19 22:27:24 [debug] 12976\#0: *3 SSL_get_error: 1
2019/02/19 22:27:24 [crit] 12976\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:27:24 [debug] 12976\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:27:24 [debug] 12976\#0: *3 stream lua finalize socket
2019/02/19 22:27:24 [debug] 12976\#0: *3 lua stream cleanup free: 000000000881EAF0
2019/02/19 22:27:24 [debug] 12976\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:27:24 [debug] 12976\#0: *3 lua close socket connection
2019/02/19 22:27:24 [debug] 12976\#0: *3 free: 000000000881F070, unused: 0
'
stream/ssl.t TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 1, req 0) @@ -1,4 +1,2 @@
connected: 1
-ssl handshake: userdata
+failed to do SSL handshake: handshake failed
-received: it works!
-close: 1 nil
'
stream/ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "(?^:\[error\] .*? failed to parse pem key: PEM_read_bio_PrivateKey\(\) failed)" should match a line in error.log (req 0)
stream/ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "[alert]" should not match any line in error.log but matches line "2019/02/19 22:27:27 [alert] 12977\#0: *3 ignoring stale global SSL error (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:27:27 [debug] 12977\#0: *3 SSL_do_handshake: -1
2019/02/19 22:27:27 [debug] 12977\#0: *3 SSL_get_error: 1
2019/02/19 22:27:27 [crit] 12977\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985
2019/02/19 22:27:27 [debug] 12977\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:27:27 [debug] 12977\#0: *3 stream lua finalize socket
2019/02/19 22:27:27 [debug] 12977\#0: *3 lua stream cleanup free: 000000000881EAF0
2019/02/19 22:27:27 [debug] 12977\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:27:27 [debug] 12977\#0: *3 lua close socket connection
2019/02/19 22:27:27 [debug] 12977\#0: *3 free: 000000000881F070, unused: 0
'
stream/ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:27:27 [crit] 12977\#0: *3 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) 2019/02/19 22:27:27 [debug] 12977\#0: *3 stream lua tcp socket error retval handler
2019/02/19 22:27:27 [debug] 12977\#0: *3 stream lua finalize socket
2019/02/19 22:27:27 [debug] 12977\#0: *3 lua stream cleanup free: 000000000881EAF0
2019/02/19 22:27:27 [debug] 12977\#0: *3 poll del event: fd:12 ev:1
2019/02/19 22:27:27 [debug] 12977\#0: *3 lua close socket connection
2019/02/19 22:27:27 [debug] 12977\#0: *3 free: 000000000881F070, unused: 0
2019/02/19 22:27:27 [debug] 12977\#0: *3 reusable connection: 0
2019/02/19 22:27:27 [debug] 12977\#0: *3 lua reuse free buf chain, but reallocate memory because 45 >= 13, cl:000000000881EC70, p:000000000881EDF0
2019/02/19 22:27:27 [debug] 12977\#0: *3 free: 000000000881EDF0
'
stream/ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "(?^:\[error\] .*? failed to parse pem key: PEM_read_bio_PrivateKey\(\) failed)" should match a line in error.log (req 1)
stream/ssl.t TEST 19: parse PEM cert and key to cdata (bad priv key) - pattern "[crit]" should not match any line in error.log but matches line "2019/02/19 22:27:27 [crit] 12977\#0: *8 SSL_do_handshake() failed (SSL: error:24064064:random number generator:RAND_bytes:PRNG not seeded:You need to read the OpenSSL FAQ, https://www.openssl.org/docs/faq.html), client: 127.0.0.1, server: 0.0.0.0:1985" (req 1) 2019/02/19 22:27:27 [debug] 12977\#0: *8 stream lua tcp socket error retval handler
2019/02/19 22:27:27 [debug] 12977\#0: *8 stream lua finalize socket
2019/02/19 22:27:27 [debug] 12977\#0: *8 lua stream cleanup free: 0000000008851280
2019/02/19 22:27:27 [debug] 12977\#0: *8 poll del event: fd:12 ev:1
2019/02/19 22:27:27 [debug] 12977\#0: *8 lua close socket connection
2019/02/19 22:27:27 [debug] 12977\#0: *8 free: 00000000088517A0, unused: 0
2019/02/19 22:27:27 [debug] 12977\#0: *8 reusable connection: 0
2019/02/19 22:27:27 [debug] 12977\#0: *8 lua reuse free buf chain, but reallocate memory because 45 >= 13, cl:00000000088513A0, p:0000000008851520
2019/02/19 22:27:27 [debug] 12977\#0: *8 free: 0000000008851520
'
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 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.