Mercurial > hg > nginx-tests
annotate stream_js_object.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 | 18ac4d9e5a2a |
children |
rev | line source |
---|---|
1559
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
2 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
3 # (C) Dmitry Volyntsev |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
5 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
6 # Tests for stream njs module, stream session object. |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
7 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
9 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
11 use strict; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
12 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
14 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
16 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::Stream qw/ stream /; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
20 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
22 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
25 |
1614
bc0990ea2e5b
Tests: js TODO adjusted up to 0.4.0.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1609
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/stream stream_return/) |
1559
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
27 ->write_file_expand('nginx.conf', <<'EOF'); |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
28 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
30 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
31 daemon off; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
32 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
33 events { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
34 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
35 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
36 stream { |
1609
f3ba4c74de31
Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents:
1559
diff
changeset
|
37 %%TEST_GLOBALS_STREAM%% |
f3ba4c74de31
Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents:
1559
diff
changeset
|
38 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
39 js_set $test test.test; |
1559
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
40 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
41 js_import test.js; |
1559
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
42 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 server { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
44 listen 127.0.0.1:8081; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
45 return $test$status; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
46 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
47 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
48 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
49 EOF |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
51 $t->write_file('test.js', <<EOF); |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
52 function to_string(s) { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
53 return s.toString() === '[object Stream Session]'; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
54 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
55 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
56 function define_prop(s) { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
57 Object.defineProperty(s.variables, 'status', {value:400}); |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
58 return s.variables.status == 400; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
59 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
60 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
61 function in_operator(s) { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
62 return ['status', 'unknown'] |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
63 .map(v=>v in s.variables) |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
64 .toString() === 'true,false'; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
65 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
66 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
67 function redefine_proto(s) { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
68 s[0] = 'a'; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 s[1] = 'b'; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
70 s.length = 2; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
71 Object.setPrototypeOf(s, Array.prototype); |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
72 return s.join('|') === 'a|b'; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
73 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
74 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
75 function get_own_prop_descs(s) { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
76 return Object.getOwnPropertyDescriptors(s)['on'].value === s.on; |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
77 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
78 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
79 function test(s) { |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
80 return [ to_string, |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
81 define_prop, |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
82 in_operator, |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
83 redefine_proto, |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
84 get_own_prop_descs, |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
85 ].every(v=>v(s)); |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
86 } |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
87 |
1751
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
88 export default {test}; |
18ac4d9e5a2a
Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1614
diff
changeset
|
89 |
1559
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
90 EOF |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
91 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
92 $t->try_run('no njs stream session object')->plan(1); |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
93 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
94 ############################################################################### |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
95 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
96 is(stream('127.0.0.1:' . port(8081))->read(), 'true400', 'var set'); |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
97 |
9e5d38da7651
Tests: added object js tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
98 ############################################################################### |