1#!/usr/bin/perl 2# Copyright (C) 2010 Google Inc. All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: 7# 8# * Redistributions of source code must retain the above copyright 9# notice, this list of conditions and the following disclaimer. 10# * Redistributions in binary form must reproduce the above 11# copyright notice, this list of conditions and the following disclaimer 12# in the documentation and/or other materials provided with the 13# distribution. 14# * Neither the name of Google Inc. nor the names of its 15# contributors may be used to endorse or promote products derived from 16# this software without specific prior written permission. 17# 18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 30# This file is a temporary hack. 31# It will be removed as soon as all platforms are are ready to move to 32# new-run-webkit-tests and we can then update the buildbots to explicitly 33# call old-run-webkit-tests for any platforms which will never support 34# a Python run-webkit-tests. 35 36# This is intentionally written in Perl to guarantee support on 37# the same set of platforms as old-run-webkit-tests currently supports. 38# The buildbot master.cfg also currently passes run-webkit-tests to 39# perl directly instead of executing it in a shell. 40 41use strict; 42use warnings; 43 44use File::Spec; 45use FindBin; 46use lib $FindBin::Bin; 47use webkitdirs; 48 49sub runningOnBuildBot() 50{ 51 # This is a hack to detect if we're running on the buildbot so we can 52 # pass --verbose to new-run-webkit-tests. This will be removed when we 53 # update the buildbot config to call new-run-webkit-tests explicitly. 54 my %isBuildBotUser = ("apple" => 1, "buildbot" => 1); 55 return $isBuildBotUser{$ENV{"USER"}}; 56} 57 58sub useNewRunWebKitTests() 59{ 60 # Change this check to control which platforms use 61 # new-run-webkit-tests by default. 62 # Example: return runningOnBuildBot() && isLeopard(); 63 # would enable new-run-webkit-tests on only the leopard buildbots. 64 return 0; 65} 66 67my $harnessName = "old-run-webkit-tests"; 68 69if (useNewRunWebKitTests()) { 70 $harnessName = "new-run-webkit-tests"; 71 if (runningOnBuildBot()) { 72 push(@ARGV, "--verbose"); 73 # old-run-webkit-tests treats --results-directory as $CWD relative. 74 # new-run-webkit-tests treats --results-directory as build directory relative. 75 # Override the passed in --results-directory by appending a new one 76 # (later arguments override earlier ones in Python's optparse). 77 push(@ARGV, "--results-directory"); 78 # The buildbot always uses $SRCDIR/layout-test-results, hardcode it: 79 push(@ARGV, sourceDir() . "/layout-test-results"); 80 } 81} 82 83my $harnessPath = File::Spec->catfile(relativeScriptsDir(), $harnessName); 84exec $harnessPath ($harnessPath, @ARGV) or die "Failed to execute $harnessPath"; 85