1#!/usr/bin/perl 2# Copyright (C) 2009 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# Script to run Web Socket server. 31 32use strict; 33use warnings; 34 35use File::Spec; 36use FindBin; 37use IPC::Open2; 38 39use lib $FindBin::Bin; 40use webkitdirs; 41 42sub closeWebSocketServer(); 43sub openWebSocketServer(); 44 45my $webSocketPort = 8880; 46 47my $srcDir = sourceDir(); 48my $layoutTestsName = "$srcDir/LayoutTests"; 49my $testDirectory = File::Spec->rel2abs($layoutTestsName); 50my $webSocketServerPidFile = "$testDirectory/websocket.pid"; 51 52 53print "Starting Web Socket server...\n"; 54openWebSocketServer(); 55print "Started.\n"; 56print "Hit [ENTER] to stop it."; 57<STDIN>; 58print "Stopping Web Socket server...\n"; 59closeWebSocketServer(); 60print "Stopped.\n"; 61exit 0; 62 63sub openWebSocketServer() 64{ 65 my $webSocketHandlerDir = "$testDirectory"; 66 67 my @args = ( 68 "$srcDir/Tools/Scripts/new-run-webkit-websocketserver", 69 "--server", "start", 70 "--port", "$webSocketPort", 71 "--root", "$webSocketHandlerDir", 72 "--pidfile", "$webSocketServerPidFile" 73 ); 74 system "/usr/bin/python", @args; 75} 76 77sub closeWebSocketServer() 78{ 79 my @args = ( 80 "$srcDir/Tools/Scripts/new-run-webkit-websocketserver", 81 "--server", "stop", 82 "--pidfile", "$webSocketServerPidFile" 83 ); 84 system "/usr/bin/python", @args; 85 unlink "$webSocketServerPidFile"; 86} 87 88 89