blob: 8d141769c057db2a78d7526f1b893ffbc0a12b2b [file] [log] [blame]
#!/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();
}