view debug_connection.t @ 395:d7d9b4367bab

Tests: start nginx prefixed to a temporary directory. This fixes spurious alert "could not open error log file ..." usually seen with the build-in error.log path when running an uninstalled nginx built with default --error-log-path.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 25 Apr 2014 18:44:46 +0400
parents c28ecaef065f
children 847ea345becb
line wrap: on
line source

#!/usr/bin/perl

# (C) Nginx, Inc.

# Tests for debug_connection.

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

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 --with-debug ipv6 proxy/);

plan(skip_all => 'not yet') unless $t->has_version('1.5.2');

$t->write_file_expand('nginx.conf', <<'EOF');

%%TEST_GLOBALS%%

daemon off;

events {
    debug_connection ::1;
}

http {
    %%TEST_GLOBALS_HTTP%%

    error_log %%TESTDIR%%/debug1.log alert;
    error_log %%TESTDIR%%/debug2.log alert;

    server {
        listen       127.0.0.1:8080;
        listen       [::1]:8080;
        server_name  localhost;

        location /debug {
            proxy_pass http://[::1]:8080/;
        }
    }
}

EOF

$t->try_run('no inet6 support')->plan(5);

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

my $d = $t->testdir();

http_get('/');
is(read_file("$d/debug1.log"), '', 'no debug_connection file 1');
is(read_file("$d/debug2.log"), '', 'no debug_connection file 1');

http_get('/debug');
like(read_file("$d/debug1.log"), qr/\[debug\]/, 'debug_connection file 1');
like(read_file("$d/debug2.log"), qr/\[debug\]/, 'debug_connection file 2');
is(read_file("$d/debug1.log"), read_file("$d/debug2.log"),
	'debug_connection file1 file2 match');

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

sub read_file {
	my ($file) = shift;
	open my $fh, '<', $file or return "$!";
	local $/;
	my $content = <$fh>;
	close $fh;
	return $content;
}

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