New JCK7 api/java_awt/geom/GeneralPath/indexTGF.html#FillHugePolyTests needs a lot of memory when run with -XX:+UseConcMarkSweepGC (Without -XX:+UseConcMarkSweepGC it passes with default heap size)
It fails with the message:
java version "1.7.0-ea"
Java(TM) SE Runtime Environment (build 1.7.0-ea-b69)
Java HotSpot(TM) Server VM (build 16.0-b07, mixed mode)
=================================
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferFloat.<init>(DataBufferFloat.java:87)
at java.awt.image.ComponentSampleModel.createDataBuffer(ComponentSampleModel.java:427)
at java.awt.image.ComponentColorModel.createCompatibleWritableRaster(ComponentColorModel.java:2831)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests.createCustomImage(FillHugePolyTests.java:130)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests.access$100(FillHugePolyTests.java:30)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests$1$2.create(FillHugePolyTests.java:55)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests$1$2.create(FillHugePolyTests.java:53)
at com.sun.tck.lib.tgf.AbstractValue.doCreate(AbstractValue.java:53)
at com.sun.tck.lib.tgf.Runner.performRunWithData(Runner.java:219)
at com.sun.tck.lib.tgf.Runner.getDataAndRun(Runner.java:179)
at com.sun.tck.lib.tgf.Runner.executeTestMethods(Runner.java:130)
at com.sun.tck.lib.tgf.Runner.run(Runner.java:117)
at com.sun.tck.lib.tgf.Runner.execute(Runner.java:109)
at com.sun.tck.lib.tgf.TGFTest.run(TGFTest.java:48)
at com.sun.tck.lib.tgf.TGFTest.run(TGFTest.java:54)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests.main(FillHugePolyTests.java:33)
The only possible way to run test is increasing heap at least with -Xms96m -Xmx192m. The same behaviour is traced at least back to b42 of jdk7 (hotspot build 14.0-b09)
Please evaluate this CR. Is the test too strict in its assumptions? Does this failure indicate some bugs in hotspot? If the test is correct and there are no bugs in product, is it possible to rewrite the test so that it will consume less memory (because this could lead to possible problems with running jck on low memory systems (like embedded))?
Steps to reproduce:
1. Install jdk (for ex. to /export/jdk/jdk1.7.0)
2. Install JCK7 (for ex. to /export/JCK/JCK-runtime-7)
3. Prepare a simple script like below to run a tests.
#!/bin/bash
JAVA=/export/jdk/jdk1.7.0/bin/java
#JOPTS="-Xms96m -Xmx192m -XX:+UseConcMarkSweepGC"
JOPTS="-XX:+UseConcMarkSweepGC"
CP=/export/JCK/JCK-runtime-7/classes:/export/jdk/jdk1.7.0/lib/tools.jar
TEST=javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests
$JAVA -version
echo "================================="
$JAVA $JOPTS -classpath $CP $TEST
It fails with the message:
java version "1.7.0-ea"
Java(TM) SE Runtime Environment (build 1.7.0-ea-b69)
Java HotSpot(TM) Server VM (build 16.0-b07, mixed mode)
=================================
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferFloat.<init>(DataBufferFloat.java:87)
at java.awt.image.ComponentSampleModel.createDataBuffer(ComponentSampleModel.java:427)
at java.awt.image.ComponentColorModel.createCompatibleWritableRaster(ComponentColorModel.java:2831)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests.createCustomImage(FillHugePolyTests.java:130)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests.access$100(FillHugePolyTests.java:30)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests$1$2.create(FillHugePolyTests.java:55)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests$1$2.create(FillHugePolyTests.java:53)
at com.sun.tck.lib.tgf.AbstractValue.doCreate(AbstractValue.java:53)
at com.sun.tck.lib.tgf.Runner.performRunWithData(Runner.java:219)
at com.sun.tck.lib.tgf.Runner.getDataAndRun(Runner.java:179)
at com.sun.tck.lib.tgf.Runner.executeTestMethods(Runner.java:130)
at com.sun.tck.lib.tgf.Runner.run(Runner.java:117)
at com.sun.tck.lib.tgf.Runner.execute(Runner.java:109)
at com.sun.tck.lib.tgf.TGFTest.run(TGFTest.java:48)
at com.sun.tck.lib.tgf.TGFTest.run(TGFTest.java:54)
at javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests.main(FillHugePolyTests.java:33)
The only possible way to run test is increasing heap at least with -Xms96m -Xmx192m. The same behaviour is traced at least back to b42 of jdk7 (hotspot build 14.0-b09)
Please evaluate this CR. Is the test too strict in its assumptions? Does this failure indicate some bugs in hotspot? If the test is correct and there are no bugs in product, is it possible to rewrite the test so that it will consume less memory (because this could lead to possible problems with running jck on low memory systems (like embedded))?
Steps to reproduce:
1. Install jdk (for ex. to /export/jdk/jdk1.7.0)
2. Install JCK7 (for ex. to /export/JCK/JCK-runtime-7)
3. Prepare a simple script like below to run a tests.
#!/bin/bash
JAVA=/export/jdk/jdk1.7.0/bin/java
#JOPTS="-Xms96m -Xmx192m -XX:+UseConcMarkSweepGC"
JOPTS="-XX:+UseConcMarkSweepGC"
CP=/export/JCK/JCK-runtime-7/classes:/export/jdk/jdk1.7.0/lib/tools.jar
TEST=javasoft.sqe.tests.api.java.awt.geom.GeneralPath.FillHugePolyTests
$JAVA -version
echo "================================="
$JAVA $JOPTS -classpath $CP $TEST