annotate t/gunzip-perl.t @ 5:d8e85fd12fab

Gunzip: require gzip and zlib in config. Require nginx core gzip bits and zlib library instead of assuming they are brought by gzip module. This fixes compilation without gzip module.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 28 Dec 2009 02:01:08 +0300
parents 7170c171150c
children 9d299b9f877b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for gunzip filter module with perl module.
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx qw/ :DEFAULT :gzip /;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 eval { require IO::Compress::Gzip; };
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 Test::More::plan(skip_all => "IO::Compress::Gzip not found") if $@;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
3
7170c171150c Gunzip: better test dependencies.
Maxim Dounin <mdounin@mdounin.ru>
parents: 2
diff changeset
27 my $t = Test::Nginx->new()->has(qw/http perl/)->plan(2)
2
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 ->write_file_expand('nginx.conf', <<'EOF');
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30 %%TEST_GLOBALS%%
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 master_process off;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 daemon off;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 events {
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 }
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 http {
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 %%TEST_GLOBALS_HTTP%%
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 server {
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 listen 127.0.0.1:8080;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 server_name localhost;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 gunzip on;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 location / {
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 perl 'sub {
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 my $r = shift;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 $r->header_out("Content-Encoding", "gzip");
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 $r->send_http_header("text/plain");
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 return OK if $r->header_only;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 use IO::Compress::Gzip;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 my $in = "TEST";
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 my $out;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 IO::Compress::Gzip::gzip(\\$in => \\$out);
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 $r->print($out);
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 return OK;
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 }';
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 }
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 }
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 }
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 EOF
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 $t->run();
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 ###############################################################################
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 http_gzip_like(http_gzip_request('/'), qr/TEST/, 'perl response gzipped');
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72 {
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 local $TODO = 'requires patched perl module';
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 like(http_get('/'), qr/TEST/, 'perl response gunzipped');
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 }
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77
5fc44c8ba213 Gunzip: add test for replies from perl module.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 ###############################################################################