diff --git a/util/dist-check b/util/dist-check new file mode 100755 index 0000000..970ca3a --- /dev/null +++ b/util/dist-check @@ -0,0 +1,88 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use Getopt::Std qw(getopts); +use Cwd qw/cwd/; + +sub sh ($); + +my %opts; +getopts("f:", \%opts) or die "Usage: $0 [-f] \n"; + +my $jobs = shift || 4; + +my $cwd = cwd(); +if ($cwd !~ /ngx_openresty-(\d+(?:\.\d+)+)$/) { + die "Bad current working directory: $cwd\n"; +} + +my $ver = $1; + +my ($make); + +if ($^O eq 'freebsd' || $^O eq 'solaris') { + $make = 'gmake'; + +} else { + $make = 'make'; +} + +my $prefix; + +warn "=== Normal Build ===\n"; +$prefix = "/usr/local/openresty"; +unless ($opts{f}) { + sh "./configure --with-luajit -j$jobs > /dev/null"; +} +sh "$make -j$jobs > /dev/null"; +sh "sudo $make install > /dev/null"; +sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep $ver"; +system "sudo killall nginx"; +sh "sudo $prefix/nginx/sbin/nginx"; +sh "curl -si localhost/lua|grep LuaJIT"; +sh "curl -si localhost/lua|grep $ver"; +sh "sudo $prefix/nginx/sbin/nginx -sstop"; + +warn "\n=== Debug Build ===\n"; +$prefix = "/usr/local/openresty-debug"; +unless ($opts{f}) { + sh "./configure --with-debug --prefix=$prefix --with-luajit -j$jobs > /dev/null"; +} +sh "$make -j$jobs > /dev/null"; +sh "sudo $make install > /dev/null"; +sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep $ver"; +sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep '\\--with-debug'"; +system "sudo killall nginx"; +sh "sudo $prefix/nginx/sbin/nginx"; +sh "curl -si localhost/lua|grep LuaJIT"; +sh "curl -si localhost/lua|grep $ver"; +sh "sudo $prefix/nginx/sbin/nginx -sstop"; + +warn "\n=== DTrace Build ===\n"; +$prefix = "/usr/local/openresty-dtrace"; +unless ($opts{f}) { + sh "./configure --with-dtrace-probes --prefix=$prefix --with-luajit -j$jobs > /dev/null"; +} +sh "$make -j$jobs > /dev/null"; +sh "sudo $make install > /dev/null"; +sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep $ver"; +sh "$prefix/nginx/sbin/nginx -V 2>&1 |grep '\\--with-dtrace-probes'"; +system "sudo killall nginx"; +sh "sudo $prefix/nginx/sbin/nginx"; +sh "curl -si localhost/lua|grep LuaJIT"; +sh "curl -si localhost/lua|grep $ver"; +if ($^O eq 'linux') { + sh "stap -L 'process(\"$prefix/nginx/sbin/nginx\").mark(\"*\")'|grep http__lua__coroutine__done"; + +} elsif ($^O eq 'freebsd' || $^O eq 'macosx') { + sh "sudo dtrace -l|grep http-lua-coroutine-done"; +} + +sh "sudo $prefix/nginx/sbin/nginx -sstop"; + +sub sh ($) { + my $cmd = shift; + system($cmd) == 0 or die "Command \"$cmd\" failed"; +}