mirror of
				https://github.com/openresty/openresty.git
				synced 2024-10-13 00:29:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
package t::Config;
 | 
						|
 | 
						|
use Test::Base -Base;
 | 
						|
use IPC::Run3 qw( run3 );
 | 
						|
 | 
						|
our @EXPORT = qw(
 | 
						|
    run_tests
 | 
						|
);
 | 
						|
 | 
						|
sub run_tests;
 | 
						|
sub run_test ($);
 | 
						|
sub shell (@);
 | 
						|
sub cd ($);
 | 
						|
 | 
						|
our $BuildRoot;
 | 
						|
 | 
						|
sub run_tests {
 | 
						|
    my $ver = `bash util/ver`;
 | 
						|
    chomp $ver;
 | 
						|
 | 
						|
    cd "ngx_openresty-$ver";
 | 
						|
 | 
						|
    $BuildRoot = File::Spec->rel2abs("./build");
 | 
						|
 | 
						|
    for my $block (blocks()) {
 | 
						|
        run_test($block);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
sub run_test ($) {
 | 
						|
    my $block = shift;
 | 
						|
    my $name = $block->name;
 | 
						|
    my $cmd = $block->cmd or
 | 
						|
        die "No --- cmd defined for $name\n";
 | 
						|
 | 
						|
    #warn "$cmd > out.txt 2>\&1";
 | 
						|
    my ($stdout, $stderr);
 | 
						|
    run3 $cmd, undef, \$stdout, \$stderr;
 | 
						|
    my $retval = $?;
 | 
						|
 | 
						|
    my $expected_exit = $block->exit;
 | 
						|
    if (!defined $expected_exit) {
 | 
						|
        $expected_exit = 0;
 | 
						|
    }
 | 
						|
 | 
						|
    my $expected_err = $block->err;
 | 
						|
    if (!defined $expected_err) {
 | 
						|
        $expected_err = '';
 | 
						|
    } else {
 | 
						|
        $expected_err =~ s/\$OPENRESTY_BUILD_DIR\b/$BuildRoot/gs;
 | 
						|
    }
 | 
						|
 | 
						|
    my $expected_out = $block->out;
 | 
						|
    if (!defined $expected_out) {
 | 
						|
        $expected_out = '';
 | 
						|
    } else {
 | 
						|
        $expected_out =~ s/\$OPENRESTY_BUILD_DIR\b/$BuildRoot/gs;
 | 
						|
    }
 | 
						|
 | 
						|
    is($stdout, $expected_out, "$name - stdout ok");
 | 
						|
    is($stderr, $expected_err, "$name - stderr ok");
 | 
						|
    is($retval >> 8, $expected_exit, "$name - exit code ok");
 | 
						|
 | 
						|
    if (defined $block->makefile) {
 | 
						|
        open my $in, "Makefile" or
 | 
						|
            die "cannot open Makefile for reading: $!";
 | 
						|
        my $got = do { local $/; <$in> };
 | 
						|
        close $in;
 | 
						|
 | 
						|
        my $expected_makefile = $block->makefile;
 | 
						|
        $expected_makefile =~ s/\$OPENRESTY_BUILD_DIR\b/$BuildRoot/gs;
 | 
						|
 | 
						|
        is($got, $expected_makefile, "$name - Makefile ok");
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
sub shell (@) {
 | 
						|
    system(@_);
 | 
						|
}
 | 
						|
 | 
						|
sub cd ($) {
 | 
						|
    my $dir = shift;
 | 
						|
    print("cd $dir\n");
 | 
						|
    chdir $dir or die "failed to cd $dir: $!\n";
 | 
						|
}
 | 
						|
 |