jdk/test/sun/tools/common/ApplicationSetup.sh
changeset 30779 92bb39a2a876
parent 30778 43087a23d825
parent 30736 ff3fc75f3214
child 30780 b83f001a855d
child 30886 d2a0ec86d6ef
--- a/jdk/test/sun/tools/common/ApplicationSetup.sh	Mon May 25 09:13:41 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-#!/bin/sh
-
-#
-# Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code 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 General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-
-# Support functions to start, stop, wait for or kill a given SimpleApplication
-
-# Starts a given app as background process, usage:
-#   startApplication <class> port-file [args...]
-#
-# The following variables are set:
-#
-# appJavaPid  - application's Java pid
-# appOtherPid - pid associated with the app other than appJavaPid
-# appPidList  - all pids associated with the app
-# appOutput   - file containing stdout and stderr from the app
-#
-# Waits for at least one line of output from the app to indicate
-# that it is up and running.
-#
-startApplication()
-{
-  appOutput="${TESTCLASSES}/Application.out"
-
-  ${JAVA} -XX:+UsePerfData -classpath "${TESTCLASSPATH:-${TESTCLASSES}}" "$@" > "$appOutput" 2>&1 &
-  appJavaPid="$!"
-  appOtherPid=
-  appPidList="$appJavaPid"
-
-  echo "INFO: waiting for $1 to initialize..."
-  _cnt=0
-  while true; do
-    # if the app doesn't start then the JavaTest/JTREG timeout will
-    # kick in so this isn't really a endless loop
-    sleep 1
-    out=`tail -1 "$appOutput"`
-    if [ -n "$out" ]; then
-      # we got some output from the app so it's running
-      break
-    fi
-    _cnt=`expr $_cnt + 1`
-    echo "INFO: waited $_cnt second(s) ..."
-  done
-  unset _cnt
-
-  if $isWindows; then
-    # Windows requires special handling
-    appOtherPid="$appJavaPid"
-
-    if $isCygwin; then
-      appJavaPid=`ps -p "$appOtherPid" \
-        | sed -n '
-          # See if $appOtherPid is in PID column; there are sometimes
-          # non-blanks in column 1 (I and S observed so far)
-          /^.'"${PATTERN_WS}${PATTERN_WS}*${appOtherPid}${PATTERN_WS}"'/{
-            # strip PID column
-            s/^.'"${PATTERN_WS}${PATTERN_WS}*${appOtherPid}${PATTERN_WS}${PATTERN_WS}"'*//
-            # strip PPID column
-            s/^[1-9][0-9]*'"${PATTERN_WS}${PATTERN_WS}"'*//
-            # strip PGID column
-            s/^[1-9][0-9]*'"${PATTERN_WS}${PATTERN_WS}"'*//
-            # strip everything after WINPID column
-            s/'"${PATTERN_WS}"'.*//
-            p
-            q
-          }
-        '`
-      echo "INFO: Cygwin pid=$appOtherPid maps to Windows pid=$appJavaPid"
-    else
-      # show PID, PPID and COMM columns only
-      appJavaPid=`ps -o pid,ppid,comm \
-        | sed -n '
-          # see if appOtherPid is in either PID or PPID columns
-          /'"${PATTERN_WS}${appOtherPid}${PATTERN_WS}"'/{
-            # see if this is a java command
-            /java'"${PATTERN_EOL}"'/{
-              # strip leading white space
-              s/^'"${PATTERN_WS}${PATTERN_WS}"'*//
-              # strip everything after the first word
-              s/'"${PATTERN_WS}"'.*//
-              # print the pid and we are done
-              p
-              q
-            }
-          }
-        '`
-      echo "INFO: MKS shell pid=$appOtherPid; Java pid=$appJavaPid"
-    fi
-
-    if [ -z "$appJavaPid" ]; then
-      echo "ERROR: could not find app's Java pid." >&2
-      killApplication
-      exit 2
-    fi
-    appPidList="$appOtherPid $appJavaPid"
-  fi
-
-  echo "INFO: $1 is process $appJavaPid"
-  echo "INFO: $1 output is in $appOutput"
-}
-
-
-# Stops a simple application by invoking ShutdownSimpleApplication
-# class with a specific port-file, usage:
-#   stopApplication port-file
-#
-# Note: When this function returns, the SimpleApplication (or a subclass)
-# may still be running because the application has not yet reached the
-# shutdown check.
-#
-stopApplication()
-{
-  $JAVA -XX:+UsePerfData -classpath "${TESTCLASSPATH:-${TESTCLASSES}}" ShutdownSimpleApplication $1
-}
-
-
-# Wait for a simple application to stop running.
-#
-waitForApplication() {
-  if [ $isWindows = false ]; then
-    # non-Windows is easy; just one process
-    echo "INFO: waiting for $appJavaPid"
-    set +e
-    wait "$appJavaPid"
-    set -e
-
-  elif $isCygwin; then
-    # Cygwin pid and not the Windows pid
-    echo "INFO: waiting for $appOtherPid"
-    set +e
-    wait "$appOtherPid"
-    set -e
-
-  else # implied isMKS
-    # MKS has intermediate shell and Java process
-    echo "INFO: waiting for $appJavaPid"
-
-    # appJavaPid can be empty if pid search in startApplication() failed
-    if [ -n "$appJavaPid" ]; then
-      # only need to wait for the Java process
-      set +e
-      wait "$appJavaPid"
-      set -e
-    fi
-  fi
-}
-
-
-# Kills a simple application by sending a SIGTERM to the appropriate
-# process(es); on Windows SIGQUIT (-9) is used.
-#
-killApplication()
-{
-  if [ $isWindows = false ]; then
-    # non-Windows is easy; just one process
-    echo "INFO: killing $appJavaPid"
-    set +e
-    kill -TERM "$appJavaPid"  # try a polite SIGTERM first
-    sleep 2
-    # send SIGQUIT (-9) just in case SIGTERM didn't do it
-    # but don't show any complaints
-    kill -QUIT "$appJavaPid" > /dev/null 2>&1
-    wait "$appJavaPid"
-    set -e
-
-  elif $isCygwin; then
-    # Cygwin pid and not the Windows pid
-    echo "INFO: killing $appOtherPid"
-    set +e
-    kill -9 "$appOtherPid"
-    wait "$appOtherPid"
-    set -e
-
-  else # implied isMKS
-    # MKS has intermediate shell and Java process
-    echo "INFO: killing $appPidList"
-    set +e
-    kill -9 $appPidList
-    set -e
-
-    # appJavaPid can be empty if pid search in startApplication() failed
-    if [ -n "$appJavaPid" ]; then
-      # only need to wait for the Java process
-      set +e
-      wait "$appJavaPid"
-      set -e
-    fi
-  fi
-}