annotate js_return.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1317
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
1375
f168fc46c7a4 Tests: renamed JavaScript to njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1320
diff changeset
6 # Tests for http njs module, return method.
1317
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
1320
8bd4b88fcac5 Tests: TODO js_return.t fail seen with older njs on some platforms.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1317
diff changeset
15 use Config;
8bd4b88fcac5 Tests: TODO js_return.t fail seen with older njs on some platforms.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1317
diff changeset
16
1317
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use lib 'lib';
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 ###############################################################################
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDERR; $| = 1;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 select STDOUT; $| = 1;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 my $t = Test::Nginx->new()->has(qw/http/)
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28 ->write_file_expand('nginx.conf', <<'EOF');
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 daemon off;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 events {
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 }
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 http {
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 %%TEST_GLOBALS_HTTP%%
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
40 js_import test.js;
1317
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 server {
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 listen 127.0.0.1:8080;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 server_name localhost;
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 location / {
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
47 js_content test.returnf;
1317
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 }
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49 }
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 }
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 EOF
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 $t->write_file('test.js', <<EOF);
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
55 function returnf(r) {
1436
9d8b100a6ce3 Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1375
diff changeset
56 r.return(Number(r.args.c), r.args.t);
1317
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57 }
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58
1751
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
59 export default {returnf};
18ac4d9e5a2a Tests: rewriting njs tests without deprecated "js_include".
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1614
diff changeset
60
1317
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 EOF
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 $t->try_run('no njs return')->plan(5);
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 ###############################################################################
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 like(http_get('/?c=200'), qr/200 OK.*\x0d\x0a?\x0d\x0a?$/s, 'return code');
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 like(http_get('/?c=200&t=SEE-THIS'), qr/200 OK.*^SEE-THIS$/ms, 'return text');
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69 like(http_get('/?c=301&t=path'), qr/ 301 .*Location: path/s, 'return redirect');
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 like(http_get('/?c=404'), qr/404 Not.*html/s, 'return error page');
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71 like(http_get('/?c=inv'), qr/ 500 /, 'return invalid');
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72
a05f377bf0ca Tests: added njs return tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73 ###############################################################################