annotate uwsgi.t @ 251:df984d23f9d1

Tests: improve fastcgi keepalive tests. On some platforms fastcgi_keepalive.t tests failed due to problems in handling of data split into multiple packets. Harden tests to fail on all platforms by adding more sleeps, and mark them as TODO till underlying problems are fixed. Additionally, add some padding testing.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 25 Jan 2013 20:53:53 +0400
parents 6a0d934950bc
children 98f3a8568b0c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
168
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Test for uwsgi backend.
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http uwsgi/)->has_daemon('uwsgi')->plan(3)
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 %%TEST_GLOBALS%%
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 241
diff changeset
29 daemon off;
168
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 http {
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 %%TEST_GLOBALS_HTTP%%
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 server {
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 listen 127.0.0.1:8080;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 server_name localhost;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 location / {
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 uwsgi_pass 127.0.0.1:8081;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 uwsgi_param SERVER_PROTOCOL $server_protocol;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 uwsgi_param HTTP_X_BLAH "blah";
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 }
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 }
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 }
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 EOF
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 $t->write_file('uwsgi_test_app.py', <<END);
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 def application(env, start_response):
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 start_response('200 OK', [('Content-Type','text/plain')])
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 return "SEE-THIS"
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 END
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 $t->run_daemon('uwsgi', '--socket', '127.0.0.1:8081',
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 '--wsgi-file', $t->testdir() . '/uwsgi_test_app.py',
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 '--logto', $t->testdir() . '/uwsgi_log');
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 $t->run();
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64
174
c8169c827d18 Tests: use waitoforsocket() as uwsgi startup may take a while.
Maxim Dounin <mdounin@mdounin.ru>
parents: 168
diff changeset
65 $t->waitforsocket('127.0.0.1:8081')
c8169c827d18 Tests: use waitoforsocket() as uwsgi startup may take a while.
Maxim Dounin <mdounin@mdounin.ru>
parents: 168
diff changeset
66 or die "Can't start uwsgi";
c8169c827d18 Tests: use waitoforsocket() as uwsgi startup may take a while.
Maxim Dounin <mdounin@mdounin.ru>
parents: 168
diff changeset
67
168
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 ###############################################################################
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 like(http_get('/'), qr/SEE-THIS/, 'uwsgi request');
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 unlike(http_head('/head'), qr/SEE-THIS/, 'no data in HEAD');
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 like(http_get_headers('/headers'), qr/SEE-THIS/,
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 'uwsgi request with many ignored headers');
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 ###############################################################################
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 sub http_get_headers {
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79 my ($url, %extra) = @_;
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 return http(<<EOF, %extra);
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 GET $url HTTP/1.0
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 Host: localhost
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
95 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 X-Blah: ignored header
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 EOF
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104 }
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105
e9133938a5d3 Tests: add uwsgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106 ###############################################################################