#
# Copyright (c) 2007, 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.
#  
#

After making any changes to libproc.so, the shell scripts described
below can be run to verify that it does not break Java Serviceability
Agent.

Setup:

You need to have jdk 1.5 installed to run this test. Set environment
variable SA_JAVA to point to the java executable of jdk
1.5. Otherwise, the script picks-up 'java' from PATH.

Running the tests:

run libproctest.sh (32-bit debuggee) and libproctest64.sh (64-bit
debuggee)

Interpreting result:

"PASSED" or "FAILED" is printed in standard output.
