annotate stream_js_import2.t @ 1842:af47a0b348a5

Tests: LibreSSL certificate negotiation with TLSv1.3. LibreSSL fails to negotiate certificates based on signature algorithms when using TLSv1.3, and fails with "missing rsa certificate" and "unknown pkey type" errors.
author Maxim Dounin <mdounin@mdounin.ru>
date Thu, 23 Mar 2023 19:50:17 +0300
parents 390cbd46c46b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1782
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for stream njs module, js_import directive in server context.
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 use lib 'lib';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19 use Test::Nginx::Stream qw/ stream /;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21 ###############################################################################
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/stream stream_return/)
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31 daemon off;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 events {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36 stream {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_STREAM%%
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39 server {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
40 listen 127.0.0.1:8081;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41 js_import foo from ./main.js;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42 js_set $test foo.bar.p;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43 return $test;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 server {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47 listen 127.0.0.1:8082;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49 js_import lib.js;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 js_access lib.access;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52 js_preread lib.preread;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53 js_filter lib.filter;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 proxy_pass 127.0.0.1:8083;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57 server {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58 listen 127.0.0.1:8083;
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 return "x";
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63 EOF
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 $t->write_file('lib.js', <<EOF);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 var res = '';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 function access(s) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69 res += '1';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70 s.allow();
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73 function preread(s) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 s.on('upload', function (data) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75 res += '2';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76 if (res.length >= 3) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77 s.done();
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
78 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 });
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82 function filter(s) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83 s.on('upload', function(data, flags) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84 s.send(data);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85 res += '3';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86 });
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88 s.on('download', function(data, flags) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 if (!flags.last) {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90 res += '4';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 s.send(data);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 } else {
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94 res += '5';
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95 s.send(res, {last:1});
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
96 s.off('download');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98 });
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 }
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101 export default {access, preread, filter};
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 EOF
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105 $t->write_file('main.js', <<EOF);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106 export default {bar: {p(s) {return "P-TEST"}}};
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108 EOF
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
109
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
110 $t->try_run('no njs available')->plan(2);
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
111
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
112 ###############################################################################
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
113
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
114 is(stream('127.0.0.1:' . port(8081))->read(), 'P-TEST', 'foo.bar.p');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
115 is(stream('127.0.0.1:' . port(8082))->io('0'), 'x122345', 'lib.access');
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
116
390cbd46c46b Tests: added js tests for directives in additional contexts.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
117 ###############################################################################