| #!/usr/bin/perl |
| ######################################################################### |
| |
| #************************************************************** |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| #************************************************************** |
| |
| |
| |
| #################################################################### |
| # File Name: template.pl |
| # Version : 1.0 |
| # Project : XMerge |
| # Author : Brian Cameron |
| # Date : 5th Sept. 2001 |
| # |
| # |
| # Takes x and y from the command line and taps the screen there. |
| # Assumes pose is already running. |
| # |
| ########################################################################## |
| |
| use POSIX "sys_wait_h"; # Need this for waitpid with WNOHANG |
| use EmRPC; # EmRPC::OpenConnection, CloseConnection |
| use EmFunctions; |
| use EmUtils; |
| |
| if ($#ARGV != 0) |
| { |
| print "\nUsage: $0 timeout\n\n"; |
| exit -1; |
| } |
| |
| $timeout = $ARGV[0]; |
| |
| if (!defined($up_pid = fork())) |
| { |
| print "ERROR, problem forking.\n" |
| } |
| elsif ($up_pid) |
| { |
| print "\nChecking to see if pose is started properly.\n"; |
| |
| # Parent process |
| # |
| sleep($timeout); |
| |
| waitpid($up_pid, WNOHANG); |
| |
| if (kill(0, $up_pid)) |
| { |
| print "Pose did not start successfully...\n"; |
| kill(9, $up_pid); |
| exit(-1); |
| } |
| else |
| { |
| # The child process exited okay, so we know it will not |
| # hang...but the open_connection will just die if pose |
| # isn't started...so try it in the parent. |
| # |
| open_connection(); |
| close_connection(); |
| |
| print "Verified pose started successfully...\n"; |
| exit(0); |
| } |
| } |
| else |
| { |
| # Child process - Try to open/close the connection. This |
| # can hang if pose did not start properly... |
| # |
| open_connection(); |
| close_connection(); |
| } |
| |
| sub open_connection |
| { |
| print "opening connection\n"; |
| EmRPC::OpenConnection(6415, "localhost"); |
| } |
| |
| sub close_connection |
| { |
| print "closing connection\n"; |
| EmRPC::CloseConnection(); |
| } |
| |