Mercurial > hg > nginx-tests
annotate debug_connection_syslog.t @ 456:858e93175802
Tests: headers module tests.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 28 Aug 2014 14:09:46 +0400 |
parents | 997f5fe16545 |
children | 907e89fba9c3 |
rev | line source |
---|---|
404
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Nginx, Inc. |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 # Tests for debug_connection with syslog. |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 ############################################################################### |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 use warnings; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use strict; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 use Test::More; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 BEGIN { use FindBin; chdir($FindBin::Bin); } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 use lib 'lib'; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use Test::Nginx; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 ############################################################################### |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 select STDERR; $| = 1; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 select STDOUT; $| = 1; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 my $t = Test::Nginx->new()->has(qw/http --with-debug ipv6 proxy/); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 plan(skip_all => 'no syslog') unless $t->has_version('1.7.1'); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 $t->write_file_expand('nginx.conf', <<'EOF'); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 %%TEST_GLOBALS%% |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 daemon off; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 events { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 debug_connection ::1; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 http { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 %%TEST_GLOBALS_HTTP%% |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 error_log syslog:server=127.0.0.1:8080 alert; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 error_log syslog:server=127.0.0.1:8081 alert; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 server { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 listen 127.0.0.1:8080; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 listen [::1]:8080; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 server_name localhost; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 location /debug { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 proxy_pass http://[::1]:8080/; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 EOF |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 eval { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 open OLDERR, ">&", \*STDERR; close STDERR; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 $t->run(); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 open STDERR, ">&", \*OLDERR; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 }; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 plan(skip_all => 'no inet6 support') if $@; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 $t->plan(5); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 ############################################################################### |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 is(get_syslog('/', 8080), '', 'no debug_connection syslog 1'); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 is(get_syslog('/', 8081), '', 'no debug_connection syslog 2'); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 my @msgs = get_syslog('/debug', 8080, 8081); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 like($msgs[0], qr/\[debug\]/, 'debug_connection syslog 1'); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 like($msgs[1], qr/\[debug\]/, 'debug_connection syslog 2'); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 is($msgs[0], $msgs[1], 'debug_connection syslog1 syslog2 match'); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 ############################################################################### |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 sub get_syslog { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 my ($uri, @port) = @_; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 my (@s); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 my $rfd = ''; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 my @data; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 eval { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 local $SIG{ALRM} = sub { die "timeout\n" }; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 local $SIG{PIPE} = sub { die "sigpipe\n" }; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 alarm(1); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 map { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 push @s, IO::Socket::INET->new( |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 Proto => 'udp', |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 LocalAddr => "127.0.0.1:$_" |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 ); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 } (@port); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 alarm(0); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 }; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 alarm(0); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 if ($@) { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 log_in("died: $@"); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 return undef; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
102 http_get($uri); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 map { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 my $data = ''; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 vec($rfd, fileno($_), 1) = 1; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 select $rfd, undef, undef, 1; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 while (select($rfd, undef, undef, 0.1) > 0 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 && vec($rfd, fileno($_), 1)) |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 { |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
111 my ($buffer); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
112 sysread($_, $buffer, 4096); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
113 $data .= $buffer; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
114 } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 push @data, $data; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 $_->close(); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 } (@s); |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 return $data[0] if scalar @data == 1; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
120 return @data; |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 } |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
122 |
997f5fe16545
Tests: added syslog tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 ############################################################################### |