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 32 use strict; 33 use warnings; 34 35 use File::Spec; 36 use FindBin; 37 use IPC::Open2; 38 39 use lib $FindBin::Bin; 40 use webkitdirs; 41 42 sub closeWebSocketServer(); 43 sub openWebSocketServer(); 44 45 my $webSocketPort = 8880; 46 47 my $srcDir = sourceDir(); 48 my $layoutTestsName = "$srcDir/LayoutTests"; 49 my $testDirectory = File::Spec->rel2abs($layoutTestsName); 50 my $webSocketServerPidFile = "$testDirectory/websocket.pid"; 51 52 53 print "Starting Web Socket server...\n"; 54 openWebSocketServer(); 55 print "Started.\n"; 56 print "Hit [ENTER] to stop it."; 57 <STDIN>; 58 print "Stopping Web Socket server...\n"; 59 closeWebSocketServer(); 60 print "Stopped.\n"; 61 exit 0; 62 63 sub 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 77 sub 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