8292064: Convert java/lang/management/MemoryMXBean shell tests to java version
Reviewed-by: lmesnik, sspitsyn
This commit is contained in:
parent
fc1d94ef1a
commit
7ea9ba1f6c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2004, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -31,6 +31,24 @@
|
|||||||
* is generated.
|
* is generated.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4982128
|
||||||
|
* @summary Test low memory detection of non-heap memory pool
|
||||||
|
*
|
||||||
|
* @run main/othervm/timeout=600 -noclassgc -XX:MaxMetaspaceSize=32m
|
||||||
|
* LowMemoryTest2
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4982128
|
||||||
|
* @summary Test low memory detection of non-heap memory pool
|
||||||
|
*
|
||||||
|
* @run main/othervm/timeout=600 -noclassgc -XX:MaxMetaspaceSize=16m
|
||||||
|
* -XX:CompressedClassSpaceSize=4m LowMemoryTest2
|
||||||
|
*/
|
||||||
|
|
||||||
import java.lang.management.*;
|
import java.lang.management.*;
|
||||||
import javax.management.*;
|
import javax.management.*;
|
||||||
import javax.management.openmbean.CompositeData;
|
import javax.management.openmbean.CompositeData;
|
||||||
|
@ -1,80 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2004, 2019, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# @test
|
|
||||||
# @bug 4982128
|
|
||||||
# @summary Test low memory detection of non-heap memory pool
|
|
||||||
#
|
|
||||||
# @requires vm.gc=="null"
|
|
||||||
#
|
|
||||||
# @run build LowMemoryTest2 MemoryUtil
|
|
||||||
# @run shell/timeout=600 LowMemoryTest2.sh
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ ! -z "${TESTJAVA}" ] ; then
|
|
||||||
JAVA=${TESTJAVA}/bin/java
|
|
||||||
CLASSPATH=${TESTCLASSES}
|
|
||||||
export CLASSPATH
|
|
||||||
else
|
|
||||||
echo "--Error: TESTJAVA must be defined as the pathname of a jdk to test."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Test execution
|
|
||||||
|
|
||||||
failures=0
|
|
||||||
|
|
||||||
go() {
|
|
||||||
echo ''
|
|
||||||
sh -xc "$JAVA $TESTVMOPTS $*" 2>&1
|
|
||||||
if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Run test with each GC configuration
|
|
||||||
#
|
|
||||||
# Notes: To ensure that metaspace fills up we disable class unloading.
|
|
||||||
# Also we set the max metaspace to 16MB/32MB - otherwise the test takes too
|
|
||||||
# long to run. The 32MB setting is required for running with CDS archive.
|
|
||||||
|
|
||||||
go -noclassgc -XX:MaxMetaspaceSize=32m -XX:+UseSerialGC LowMemoryTest2
|
|
||||||
go -noclassgc -XX:MaxMetaspaceSize=32m -XX:+UseParallelGC LowMemoryTest2
|
|
||||||
|
|
||||||
# Test class metaspace - might hit MaxMetaspaceSize instead if
|
|
||||||
# UseCompressedClassPointers is off or if 32 bit.
|
|
||||||
#
|
|
||||||
# (note: This is very shaky and that shakiness exposes a problem with MemoryMXBean:
|
|
||||||
#
|
|
||||||
# MemoryMXBean defines "used" "committed" and "max" (see java/lang/management/MemoryUsage.java)
|
|
||||||
# This abstraction misses a definition for "address space exhausted" which with the new Metaspace (jep387)
|
|
||||||
# can happen before committed/used hits any trigger. We now commit only on demand and therefore class loaders
|
|
||||||
# can sit atop of uncommitted address space, denying new loaders address space. In the old Metaspace,
|
|
||||||
# we would have committed the space right away and therefore the MemoryMXBean "committed" trigger
|
|
||||||
# would have fired. In the new Metaspace, we don't commit, so the MemoryMXBean does not fire.
|
|
||||||
go -noclassgc -XX:MaxMetaspaceSize=16m -XX:CompressedClassSpaceSize=4m LowMemoryTest2
|
|
||||||
|
|
||||||
echo ''
|
|
||||||
if [ $failures -gt 0 ];
|
|
||||||
then echo "$failures test(s) failed";
|
|
||||||
else echo "All test(s) passed"; fi
|
|
||||||
exit $failures
|
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -30,9 +30,26 @@
|
|||||||
*
|
*
|
||||||
* @author Mandy Chung
|
* @author Mandy Chung
|
||||||
*
|
*
|
||||||
|
* @requires vm.gc == null | vm.gc == "G1"
|
||||||
|
*
|
||||||
* @modules jdk.management
|
* @modules jdk.management
|
||||||
* @build MemoryManagement MemoryUtil
|
*
|
||||||
* @run main/othervm/timeout=600 -Xmn8m -XX:+IgnoreUnrecognizedVMOptions -XX:G1HeapRegionSize=1 -XX:-UseLargePages MemoryManagement
|
* @run main/othervm/timeout=600 -Xmn8m -XX:+IgnoreUnrecognizedVMOptions
|
||||||
|
* -XX:G1HeapRegionSize=1 -XX:-UseLargePages MemoryManagement
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @test
|
||||||
|
* @bug 4530538 6980984
|
||||||
|
* @summary Basic unit test of memory management testing:
|
||||||
|
* 1) setUsageThreshold() and getUsageThreshold()
|
||||||
|
* 2) test low memory detection on the old generation.
|
||||||
|
*
|
||||||
|
* @author Mandy Chung
|
||||||
|
*
|
||||||
|
* @modules jdk.management
|
||||||
|
*
|
||||||
|
* @run main/timeout=600 MemoryManagement
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.lang.management.*;
|
import java.lang.management.*;
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2003, 2015, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# @test
|
|
||||||
# @bug 4530538
|
|
||||||
# @summary Run MemoryManagement test with parallel GC
|
|
||||||
# @author Mandy Chung
|
|
||||||
#
|
|
||||||
# @requires vm.gc=="Parallel" | vm.gc=="null"
|
|
||||||
#
|
|
||||||
# @run build MemoryManagement
|
|
||||||
# @run shell/timeout=600 MemoryManagementParallelGC.sh
|
|
||||||
#
|
|
||||||
|
|
||||||
#Set appropriate jdk
|
|
||||||
|
|
||||||
if [ ! -z "${TESTJAVA}" ] ; then
|
|
||||||
jdk="$TESTJAVA"
|
|
||||||
else
|
|
||||||
echo "--Error: TESTJAVA must be defined as the pathname of a jdk to test."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
runOne()
|
|
||||||
{
|
|
||||||
echo "runOne $@"
|
|
||||||
$TESTJAVA/bin/java ${TESTVMOPTS} -classpath $TESTCLASSES $@ || exit 2
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test MemoryManagement with parallel collector
|
|
||||||
runOne -XX:+UseParallelGC MemoryManagement
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,54 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2003, 2015, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# @test
|
|
||||||
# @bug 4530538
|
|
||||||
# @summary Run MemoryManagement test with serial GC
|
|
||||||
# @author Mandy Chung
|
|
||||||
#
|
|
||||||
# @requires vm.gc=="Serial" | vm.gc=="null"
|
|
||||||
#
|
|
||||||
# @run build MemoryManagement
|
|
||||||
# @run shell/timeout=600 MemoryManagementSerialGC.sh
|
|
||||||
#
|
|
||||||
|
|
||||||
#Set appropriate jdk
|
|
||||||
|
|
||||||
if [ ! -z "${TESTJAVA}" ] ; then
|
|
||||||
jdk="$TESTJAVA"
|
|
||||||
else
|
|
||||||
echo "--Error: TESTJAVA must be defined as the pathname of a jdk to test."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
runOne()
|
|
||||||
{
|
|
||||||
echo "runOne $@"
|
|
||||||
$TESTJAVA/bin/java ${TESTVMOPTS} -classpath $TESTCLASSES $@ || exit 2
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test MemoryManagement with serial collector
|
|
||||||
runOne -XX:+UseSerialGC MemoryManagement
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2003, 2015, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# @test
|
|
||||||
# @bug 4530538
|
|
||||||
# @summary
|
|
||||||
# @author Mandy Chung
|
|
||||||
#
|
|
||||||
# @requires vm.gc=="Parallel" | vm.gc=="null"
|
|
||||||
#
|
|
||||||
# @run compile MemoryTest.java
|
|
||||||
# @run shell MemoryTestAllGC.sh
|
|
||||||
#
|
|
||||||
|
|
||||||
#Set appropriate jdk
|
|
||||||
|
|
||||||
if [ ! -z "${TESTJAVA}" ] ; then
|
|
||||||
jdk="$TESTJAVA"
|
|
||||||
else
|
|
||||||
echo "--Error: TESTJAVA must be defined as the pathname of a jdk to test."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
runOne()
|
|
||||||
{
|
|
||||||
echo "runOne $@"
|
|
||||||
$TESTJAVA/bin/java ${TESTVMOPTS} -classpath $TESTCLASSES $@ || exit 2
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test MemoryTest with default collector
|
|
||||||
runOne MemoryTest 2 3
|
|
||||||
|
|
||||||
# Test MemoryTest with parallel scavenger collector
|
|
||||||
runOne -XX:+UseParallelGC MemoryTest 2 3
|
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2003, 2022, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -35,6 +35,8 @@
|
|||||||
*
|
*
|
||||||
* @modules java.base/jdk.internal.misc
|
* @modules java.base/jdk.internal.misc
|
||||||
* java.management
|
* java.management
|
||||||
|
*
|
||||||
|
* @run main Pending
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import java.lang.management.*;
|
import java.lang.management.*;
|
||||||
|
@ -1,57 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2003, 2019, 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# @test
|
|
||||||
# @bug 4530538
|
|
||||||
# @summary
|
|
||||||
# @author Mandy Chung
|
|
||||||
# @requires vm.gc=="null"
|
|
||||||
# @modules java.base/jdk.internal.misc
|
|
||||||
# java.management
|
|
||||||
# @run compile Pending.java
|
|
||||||
# @run shell PendingAllGC.sh
|
|
||||||
#
|
|
||||||
|
|
||||||
#Set appropriate jdk
|
|
||||||
|
|
||||||
if [ ! -z "${TESTJAVA}" ] ; then
|
|
||||||
jdk="$TESTJAVA"
|
|
||||||
else
|
|
||||||
echo "--Error: TESTJAVA must be defined as the pathname of a jdk to test."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
runOne()
|
|
||||||
{
|
|
||||||
echo "runOne $@"
|
|
||||||
$TESTJAVA/bin/java ${TESTVMOPTS} -classpath $TESTCLASSES $@ || exit 2
|
|
||||||
}
|
|
||||||
|
|
||||||
# Test Pending with default collector
|
|
||||||
runOne Pending
|
|
||||||
|
|
||||||
# Test Pending with parallel scavenger collector
|
|
||||||
runOne -XX:+UseParallelGC Pending
|
|
||||||
|
|
||||||
exit 0
|
|
Loading…
Reference in New Issue
Block a user