annotate perl.t @ 144:6e11354cae8a

Tests: rework stopping to make "open socket left" alerts visible. Use SIGQUIT to stop nginx to make sure relevant checks are executed. Use separate functions to stop nginx and daemons to make it possible to stop nginx before daemons.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 15 Dec 2010 19:22:39 +0300
parents 8ac1faaddd2c
children c0ae29632905
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
118
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for embedded perl module.
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
121
8ac1faaddd2c Tests: better handle various configure arguments.
Maxim Dounin <mdounin@mdounin.ru>
parents: 118
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http perl rewrite/)->plan(1)
118
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 %%TEST_GLOBALS%%
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 master_process off;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30 daemon off;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 events {
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 }
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 http {
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 %%TEST_GLOBALS_HTTP%%
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 server {
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 listen 127.0.0.1:8080;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 server_name localhost;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 location / {
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 set $testvar "TEST";
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 perl 'sub {
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 use warnings;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 use strict;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 my $r = shift;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 $r->send_http_header("text/plain");
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 return OK if $r->header_only;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 my $v = $r->variable("testvar");
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 $r->print("$v");
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 return OK;
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 }';
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 }
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 }
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 }
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 EOF
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 $t->run();
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 ###############################################################################
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 like(http_get('/'), qr/TEST/, 'perl response');
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71
4bf7a819358c Tests: add some embedded perl tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72 ###############################################################################