annotate stream_js_ngx.t @ 1851:0351dee227a8

Tests: unbreak tests with dynamic certificates on stable. In 74cffa9d4c43, ticket based session reuse is enabled in addition to using a shared SSL session cache. This changed how a session can be resumed in a different server: - for a session ID based resumption, it is resumed in the same context - when using session tickets, a key name is also checked for matching - with a ticket callback, this is skipped in favor of callback's logic This makes 'session id context match' tests fail with session tickets on stable since ticket key names are unique in distinct SSL contexts. On the other hand, tests pass on 1.23.2+ due to automatic ticket keys rotation that installs ticket callback, and using a common shared SSL session cache.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 28 Mar 2023 01:36:32 +0400
parents 7cf848422b28
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1611
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for stream njs module, ngx object.
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 use lib 'lib';
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19 use Test::Nginx::Stream qw/ stream /;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21 ###############################################################################
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/stream stream_return/)
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31 daemon off;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 events {
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34 }
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35
1615
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
36 http {
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
37 %%TEST_GLOBALS_HTTP%%
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
38
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
39 js_import test.js;
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
40
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
41 server {
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
42 listen 127.0.0.1:8080;
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
43 server_name localhost;
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
44
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
45 location /njs {
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
46 js_content test.njs;
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
47 }
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
48 }
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
49 }
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
50
1611
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 stream {
1792
d16310f0ada7 Tests: added missing TEST_GLOBALS_STREAM templates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1615
diff changeset
52 %%TEST_GLOBALS_STREAM%%
d16310f0ada7 Tests: added missing TEST_GLOBALS_STREAM templates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1615
diff changeset
53
1611
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 js_import test.js;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56 js_set $log test.log;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58 server {
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 listen 127.0.0.1:8081;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60 return $log;
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 }
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62 }
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64 EOF
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 $t->write_file('test.js', <<EOF);
1615
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
67 function test_njs(r) {
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
68 r.return(200, njs.version);
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
69 }
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
70
1611
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71 function log(s) {
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72 ngx.log(ngx.INFO, `ngx.log:FOO`);
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73 ngx.log(ngx.WARN, `ngx.log:BAR`);
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 ngx.log(ngx.ERR, `ngx.log:BAZ`);
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75 return 'OK';
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76 }
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77
1615
4eb2a82dd9b5 Tests: added njs version check for js ngx tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1611
diff changeset
78 export default {njs: test_njs, log};
1611
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80 EOF
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82 $t->try_run('no njs ngx')->plan(4);
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84 ###############################################################################
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86 is(stream('127.0.0.1:' . port(8081))->read(), 'OK', 'log var');
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88 $t->stop();
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90 like($t->read_file('error.log'), qr/\[info\].*ngx.log:FOO/, 'ngx.log info');
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 like($t->read_file('error.log'), qr/\[warn\].*ngx.log:BAR/, 'ngx.log warn');
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92 like($t->read_file('error.log'), qr/\[error\].*ngx.log:BAZ/, 'ngx.log err');
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93
dbeb4c896f7e Tests: added js tests for ngx object.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94 ###############################################################################