annotate worker_shutdown_timeout.t @ 1185:368ab1d8ed8b

Tests: unbreak h2.t with aio. Postpone sending client's SETTINGS until after server exhausted stream window, so the expected result does not depend on the time when SETTINGS was applied.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 06 Jun 2017 21:41:09 +0300
parents feb91ae3fca3
children c99c1f43cb15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1149
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for worker_shutdown_timeout directive.
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
1157
06bb6af4324e Tests: adjusted worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1149
diff changeset
15 use IO::Select;
06bb6af4324e Tests: adjusted worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1149
diff changeset
16
1149
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use lib 'lib';
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 ###############################################################################
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDERR; $| = 1;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 select STDOUT; $| = 1;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 plan(skip_all => 'win32') if $^O eq 'MSWin32';
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 my $t = Test::Nginx->new()->has(qw/http/)
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 ->write_file_expand('nginx.conf', <<'EOF');
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 %%TEST_GLOBALS%%
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 daemon off;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 worker_shutdown_timeout 10ms;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 events {
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 }
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 http {
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 %%TEST_GLOBALS_HTTP%%
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 server {
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 listen 127.0.0.1:8080;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 server_name localhost;
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 location / { }
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 }
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49 }
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 EOF
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 $t->try_run('no worker_shutdown_timeout')->plan(1);
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 ###############################################################################
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57 my $s = http('', start => 1);
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58
1162
feb91ae3fca3 Tests: reduced race in worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1160
diff changeset
59 select undef, undef, undef, 0.2;
feb91ae3fca3 Tests: reduced race in worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1160
diff changeset
60
1149
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 kill 'HUP', $t->read_file('nginx.pid');
1160
4ed2226d47de Tests: increased read timeout in worker_shutdown_timeout test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1157
diff changeset
62
4ed2226d47de Tests: increased read timeout in worker_shutdown_timeout test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1157
diff changeset
63 if (IO::Select->new($s)->can_read(5)) {
4ed2226d47de Tests: increased read timeout in worker_shutdown_timeout test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1157
diff changeset
64 Test::Nginx::log_core('||', "select: can_read");
4ed2226d47de Tests: increased read timeout in worker_shutdown_timeout test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 1157
diff changeset
65 }
1149
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 is(http_get('/', socket => $s) || '', '', 'worker_shutdown_timeout');
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68
b1c2857d2e97 Tests: basic worker_shutdown_timeout test.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69 ###############################################################################