view perl.t @ 207:0a9e5d753fb8

Tests: accept 404 on file link open with trailing slash. It's unspecified whether ENOTDIR or ELOOP/EMLINKS will be returned if both O_DIRECTORY and O_NOFOLLOW are set, so we accept both return codes (and 403 and 404 http status codes accordingly).
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 29 Feb 2012 13:09:30 +0100
parents c0ae29632905
children 6a0d934950bc
line wrap: on
line source

#!/usr/bin/perl

# (C) Maxim Dounin

# Tests for embedded perl module.

###############################################################################

use warnings;
use strict;

use Test::More;

BEGIN { use FindBin; chdir($FindBin::Bin); }

use lib 'lib';
use Test::Nginx;

###############################################################################

select STDERR; $| = 1;
select STDOUT; $| = 1;

my $t = Test::Nginx->new()->has(qw/http perl rewrite/)->plan(1)
	->write_file_expand('nginx.conf', <<'EOF');

%%TEST_GLOBALS%%

daemon         off;

events {
}

http {
    %%TEST_GLOBALS_HTTP%%

    server {
        listen       127.0.0.1:8080;
        server_name  localhost;

        location / {
            set $testvar "TEST";
            perl 'sub {
                use warnings;
                use strict;

                my $r = shift;

                $r->send_http_header("text/plain");

                return OK if $r->header_only;

                my $v = $r->variable("testvar");

                $r->print("$v");

                return OK;
            }';
        }
    }
}

EOF

$t->run();

###############################################################################

like(http_get('/'), qr/TEST/, 'perl response');

###############################################################################