#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# 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.
#
#
# @test
# @bug 4981536
# @summary TTY: .jdbrc is read twice if jdb is run in the user's home dir
# @author jjh
# @run shell JdbReadTwiceTest.sh
#Set appropriate jdk
if [ ! -z "$TESTJAVA" ] ; then
else
echo "--Error: TESTJAVA must be defined as the pathname of a jdk to test."
exit 1
fi
if [ -z "$TESTCLASSES" ] ; then
echo "--Error: TESTCLASSES must be defined."
exit 1
fi
# Need this to convert to the /.automount/... form which
# is what jdb will report when it reads an init file.
echo TESTCLASSES=$TESTCLASSES
echo TESTCLASSES=$TESTCLASSES
;;
esac
# All output will go under this dir. We define HOME to
# be under here too, and pass it into jdb, to avoid problems
# with java choosing a value of HOME.
baseDir="$TESTCLASSES/jdbRead$$"
cd $here
{
touch "$@"
}
{
echo quit | $TESTJAVA/bin/jdb -J-Duser.home=$HOME > $tmpResult 2>&1
}
{
# $1 is the expected number of occurances of $2 in the jdb output.
count=$1
shift
if [ -r c:/ ] ; then
fi
echo "-----"
echo "-----"
failed=1
else
fi
}
{
}
# Note: If jdb reads a file, it outputs a message containing
# from: filename
# If jdb can't read a file, it outputs a message containing
# open: filename
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "Verify each individual file is read"
cd $HOME
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "Verify files are not read twice if cwd is ~"
cd $here
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "If jdb.ini and both .jdbrc exist, don't read .jdbrc"
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "If files exist in both ~ and ., read both"
if [ ! -r c:/ ] ; then
# No symlinks on windows.
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "Don't read a . file that is a symlink to a ~ file"
fi
if [ ! -r c:/ ] ; then
# No symlinks on windows.
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "Don't read a . file that is a target symlink of a ~ file"
fi
if [ ! -r c:/ ] ; then
# Can't make a file unreadable under MKS.
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "Read an unreadable file - verify the read fails."
# If the file exists, we try to read it. The
# read will fail.
fi
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "Read a directory - verify the read fails"
# If the file (IE. directory) exists, we try to read it. The
# read will fail.
echo
echo "+++++++++++++++++++++++++++++++++++"
echo "Verify the jdb read command still works"
if [ ! -r c:/ ] ; then
# Can't make a file unreadable under MKS
fi
if [ "$failed" = 1 ] ; then
echo "One or more tests failed"
exit 1
fi
echo "All tests passed"