Home | History | Annotate | Download | only in Scripts
      1 #!/usr/bin/perl
      2 
      3 # Copyright (C) 2005, 2006, 2007 Apple Inc.  All rights reserved.
      4 # Copyright (C) 2006 Alexey Proskuryakov (ap (at] nypop.com)
      5 #
      6 # Redistribution and use in source and binary forms, with or without
      7 # modification, are permitted provided that the following conditions
      8 # are met:
      9 #
     10 # 1.  Redistributions of source code must retain the above copyright
     11 #     notice, this list of conditions and the following disclaimer. 
     12 # 2.  Redistributions in binary form must reproduce the above copyright
     13 #     notice, this list of conditions and the following disclaimer in the
     14 #     documentation and/or other materials provided with the distribution. 
     15 # 3.  Neither the name of Apple Inc. ("Apple") nor the names of
     16 #     its contributors may be used to endorse or promote products derived
     17 #     from this software without specific prior written permission. 
     18 #
     19 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
     20 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     21 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
     22 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
     23 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     24 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     25 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
     26 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     28 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     29 
     30 # Script to run Apache with the same configuration as used in http layout tests.
     31 
     32 use strict;
     33 use warnings;
     34 
     35 use Cwd;
     36 use File::Path;
     37 use File::Basename;
     38 use Getopt::Long;
     39 use FindBin;
     40 
     41 use lib $FindBin::Bin;
     42 use webkitperl::httpd;
     43 use webkitdirs;
     44 
     45 # Argument handling
     46 my $httpdPort = 8000;
     47 my $allInterfaces = 0;
     48 my $showHelp;
     49 
     50 my $result = GetOptions(
     51     'all-interfaces|a' => \$allInterfaces,
     52     'help|h' => \$showHelp,
     53     'port=i' => \$httpdPort,
     54 );
     55 
     56 if (!$result || @ARGV || $showHelp) {
     57     print "Usage: " . basename($0) . " [options]\n";
     58     print "  -a|--all-interfaces  Bind to all interfaces\n";
     59     print "  -h|--help            Show this help message\n";
     60     print "  -p|--port NNNN       Bind to port NNNN\n";
     61     exit 1;
     62 }
     63 
     64 setConfiguration();
     65 my $productDir = productDir();
     66 chdirWebKit();
     67 my $testDirectory = File::Spec->catfile(getcwd(), "LayoutTests");
     68 my $listen = "127.0.0.1:$httpdPort";
     69 $listen = "$httpdPort" if ($allInterfaces);
     70 
     71 if ($allInterfaces) {
     72     print "Starting httpd on port $httpdPort (all interfaces)...\n";
     73 } else {
     74     print "Starting httpd on <http://$listen/>...\n";
     75 }
     76 setShouldWaitForUserInterrupt();
     77 print "Press Ctrl+C to stop it.\n\n";
     78 
     79 my @args = (
     80     "-C", "Listen $listen",
     81     "-c", "CustomLog |/usr/bin/tee common",
     82     "-c", "ErrorLog |/usr/bin/tee",
     83     # Run in single-process mode, do not detach from the controlling terminal.
     84     "-X",
     85     # Disable Keep-Alive support. Makes testing in multiple browsers easier (no need to wait
     86     # for another browser's connection to expire).
     87     "-c", "KeepAlive 0"
     88 );
     89 
     90 my @defaultArgs = getDefaultConfigForTestDirectory($testDirectory);
     91 @args = (@defaultArgs, @args);
     92 openHTTPD(@args);
     93