Mercurial > hg > nginx-tests
annotate stream_js_object.t @ 1871:1ba5108b6c24
Tests: handled unsupported PSS in sigalgs.
It might happen that TLSv1.3 is disabled and PSS isn't supported as seen on
Amazon Linux (LTS). Now setting sigalgs is retried without PSS on failure.
Patch by Maxim Dounin.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Tue, 23 May 2023 16:30:02 +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 ############################################################################### |