annotate perl_ssi.t @ 1236:93f749c1d5c5

Tests: fixed parallel tests execution with UDP. Previously, when checking ports availability, a UDP socket was always created first, then a TCP socket was created. On success, one of UDP and TCP sockets was closed (depending on the "udp" option) and the second one was used to busy this port in other scripts. This lead to the following problem: in an attempt to reopen a UDP socket used in a given testing script it could be stolen by another script as part of checking ports availability. To solve this problem, UDP and TCP ports were split into two non-overlapping ranges: TCP ports are only used in the range 8000-8499, and UDP ports - in the range 8500-8999. In addition, the order of creating sockets in UDP tests has been reversed: now a TCP socket used as a lock precedes a UDP socket.
author Andrey Zelenkov <zelenkov@nginx.com>
date Thu, 26 Oct 2017 18:00:21 +0300
parents 3a3a7f68c6d7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1074
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for embedded perl module.
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http perl ssi/)->plan(3)
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 %%TEST_GLOBALS%%
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 daemon off;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 http {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 %%TEST_GLOBALS_HTTP%%
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 server {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 listen 127.0.0.1:8080;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 server_name localhost;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 location / {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 ssi on;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 location /dummy {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 perl 'sub foo { my $r = shift; $r->print(join ",", @_); }';
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 EOF
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 $t->write_file('t1.html', 'X<!--#perl sub="foo" arg="arg1" -->X');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 $t->write_file('t2.html', 'X<!--#perl sub="foo" arg="arg1" arg="arg2" -->X');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 $t->write_file('noargs.html', 'X<!--#perl sub="foo" -->X');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 $t->run();
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 ###############################################################################
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 like(http_get('/t1.html'), qr/Xarg1X/, 'perl ssi response');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 like(http_get('/t2.html'), qr/Xarg1,arg2X/, 'perl ssi two args');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 like(http_get('/noargs.html'), qr/XX/, 'perl ssi noargs');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 ###############################################################################