#!/bin/sh
#*******************************************************************************
# ALMA - Atacama Large Millimiter Array
# (c) European Southern Observatory, 2002
# Copyright by ESO (in the framework of the ALMA collaboration),
# All rights reserved
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, 
# MA 02111-1307  USA
#

echo "=== Running all JUnit tests related to the client"

    # Start ComponentClient, sleep 1 second, call tearDown() -- everything should go normally
    acsStartJava alma.acs.component.client.ShutdownHookTest 0 1 1

    # Start SlowComponentClient, sleep 1 second, call tearDown(), then kill process -- shutdown hook should not trigger tearDown() again
    acsStartJava alma.acs.component.client.ShutdownHookTest 1 1 1 &
    sleep 5
    pid=$(jobs -l | awk '{print $2}')
    pid=$(ps -o pid --ppid $pid | grep -v PID)
    kill $pid
    wait

    # Start ComponentClient, sleep 1 second, call tearDown() twice -- log message about double tearDown()
    acsStartJava alma.acs.component.client.ShutdownHookTest 0 1 2

    # Start ComponentClient, sleep 1 second, don't call tearDown() -- shutdown hook should call it
    acsStartJava alma.acs.component.client.ShutdownHookTest 0 1 0

    # Start ComponentClient, sleep 100 seconds, kill it before it calls the tearDown() -- shutdown hook should call it
    acsStartJava alma.acs.component.client.ShutdownHookTest 0 100 0 &
    sleep 5
    pid=$(jobs -l | awk '{print $2}')
    pid=$(ps -o pid --ppid $pid | grep -v PID)
    kill $pid
    wait

echo "=== Done running jcont JUnit tests related to the client"
