Path: blob/master/test/functional/cmdLineTests/gcRegressionTests/gcRegressionTests.xml
6004 views
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>12<!--3Copyright (c) 2001, 2022 IBM Corp. and others45This program and the accompanying materials are made available under6the terms of the Eclipse Public License 2.0 which accompanies this7distribution and is available at https://www.eclipse.org/legal/epl-2.0/8or the Apache License, Version 2.0 which accompanies this distribution and9is available at https://www.apache.org/licenses/LICENSE-2.0.1011This Source Code may also be made available under the following12Secondary Licenses when the conditions for such availability set13forth in the Eclipse Public License, v. 2.0 are satisfied: GNU14General Public License, version 2 with the GNU Classpath15Exception [1] and GNU General Public License, version 2 with the16OpenJDK Assembly Exception [2].1718[1] https://www.gnu.org/software/classpath/license.html19[2] http://openjdk.java.net/legal/assembly-exception.html2021SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception22-->2324<!DOCTYPE suite SYSTEM "cmdlinetester.dtd">2526<suite id="J9 GC Regression Tests" timeout="900">2728<!-- Arguments used in all tests -->29<!-- "-XX:fatalassert" should be re-added to this ARGS_FOR_ALL_TESTS once it is properly supported on non-sidecar specs (see CMVC 130850) -->30<variable name="ARGS_FOR_ALL_TESTS" value=" -Dcom.ibm.tools.attach.enable=no -Xdump:system:events=systhrow,filter=java/lang/OutOfMemoryError" />31<variable name="CP" value="-cp $TESTSJARPATH$" />32<variable name="XINT" value="-Xint" />3334<!-- Arguments specific to the class unloading tests -->35<variable name="PROGRAM" value="com.ibm.tests.garbagecollector.TestClassLoaderMain" />36<variable name="MEM" value="8m" />37<variable name="VMARGS" value="-Xmx$MEM$ -Xms$MEM$ -Xalwaysclassgc -Xdisableexcessivegc" />38<variable name="EXTRAVMARG" value="-Xgc:fvtest=forceFinalizeClassLoaders" />39<variable name="EXCESSIVE_STRING" value="excessive gc activity detected, will fail on allocate" />4041<!-- by default, allocation context count is based on the number of CPUs but this can cause non-deterministic pass/fail conditions -->42<variable name="RT_ALLOCATION_CONTEXT_ARG" value=" " />43<variable name="RT_ALLOCATION_CONTEXT_ARG" value="-XXgc:allocationContextCount=1" platforms="Mode301" />4445<!-- CMVC 152737: Verify that we can bootstrap the VM even with odd heap sizing parameters (proves that we correctly and consistently round Xms and Xmx) -->46<test id="Odd memory parameters are accepted">47<command>$EXE$ $XINT$ $RT_ALLOCATION_CONTEXT_ARG$ -Xmx4500123 -Xms4500123 NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</command>48<output regex="no" type="success">NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</output><!-- VM bootstrapped but this isn't a real class -->49<output regex="no" type="failure">JVMJ9GC019E</output><!-- JVMJ9GC019E -Xms too large for -Xmx (happens if we applied inconsistent rounding) -->50</test>5152<!-- CMVC 137486: Verify that we can bootstrap the VM with default memory parameters under the gencon policy (since gencon uses multiple subspaces,53it is good at catching subtle sizing bugs which tend to be related to default heap sizing -->54<test id="Default memory parameters work with gencon">55<command>$EXE$ $XINT$ -Xgcpolicy:gencon NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</command>56<output regex="no" type="success">NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</output><!-- VM bootstrapped but this isn't a real class -->57<output regex="no" type="success">JVMJ9VM007E</output><!-- Command line option not recognized (will occur if this is a spec without gencon) -->58</test>5960<!-- CMVC 137192: Verify that invalid percentage values are rejected as input. A percentage value can61range from 0.00 to 1.00, and has a precision of two decimal digits. For example, 0.30 is a valid62percentage value, whereas, 1a, 1.0a, and 1.00a are considered invalid input -->63<test id="-Xmaxf1a">64<command>$EXE$ -Xmaxf1a -version</command>65<output regex="no" type="success">JVMJ9GC035E</output><!-- -Xmaxf must be followed by a number -->66<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->67<output regex="no" type="success">JVMJ9VM081W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->68<output regex="no" type="success">JVMVMUT010W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->69</test>70<test id="-Xmaxf1.0a">71<command>$EXE$ -Xmaxf1.0a -version</command>72<output regex="no" type="success">JVMJ9GC035E</output><!-- -Xmaxf must be followed by a number -->73<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->74<output regex="no" type="success">JVMJ9VM081W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->75<output regex="no" type="success">JVMVMUT010W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->76</test>77<test id="-Xmaxf1.00a">78<command>$EXE$ -Xmaxf1.00a -version</command>79<output regex="no" type="success">JVMJ9GC035E</output><!-- -Xmaxf must be followed by a number -->80<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->81<output regex="no" type="success">JVMJ9VM081W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->82<output regex="no" type="success">JVMVMUT010W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->83</test>84<test id="-Xmaxf0.50a">85<command>$EXE$ -Xmaxf0.50a -version</command>86<output regex="no" type="success">JVMJ9GC035E</output><!-- -Xmaxf must be followed by a number -->87<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->88<output regex="no" type="success">JVMJ9VM081W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->89<output regex="no" type="success">JVMVMUT010W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->90</test>91<test id="-Xmaxf0.501">92<command>$EXE$ -Xmaxf0.501 -version</command>93<output regex="no" type="success">JVMJ9GC035E</output><!-- -Xmaxf must be followed by a number -->94<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->95<output regex="no" type="success">JVMJ9VM081W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->96<output regex="no" type="success">JVMVMUT010W</output><!-- Malformed option value warning stating that the option contains trailing characters which have been ignored -->97</test>98<test id="-Xmaxf1.01">99<command>$EXE$ -Xmaxf1.01 -version</command>100<output regex="no" type="success">JVMJ9GC033E</output><!-- -Xmaxf value must be between 0.00 and 1.00 (inclusive) -->101<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->102</test>103<test id="-Xmaxf2">104<command>$EXE$ -Xmaxf2 -version</command>105<output regex="no" type="success">JVMJ9GC033E</output><!-- -Xmaxf value must be between 0.00 and 1.00 (inclusive) -->106<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->107</test>108<test id="-Xmaxf0.75">109<command>$EXE$ -Xmaxf0.75 -version</command>110<output regex="no" type="success">version</output><!-- Ensure 0.75 is accepted as a valid input -->111<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->112</test>113<test id="-Xmaxf1">114<command>$EXE$ -Xmaxf1 -version</command>115<output regex="no" type="success">version</output><!-- Ensure 1 is accepted as a valid input -->116<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->117</test>118<test id="-Xmaxf1.0">119<command>$EXE$ -Xmaxf1.0 -version</command>120<output regex="no" type="success">version</output><!-- Ensure 1.0 is accepted as a valid input -->121<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->122</test>123<test id="-Xmaxf1.00">124<command>$EXE$ -Xmaxf1.00 -version</command>125<output regex="no" type="success">version</output<!-- Ensure 1.00 is accepted as a valid input -->126<output regex="no" type="success">JVMJ9VM007E</output><!-- Command-line option unrecognised, required since -Xmaxf is not supported when gc_realtime is enabled -->127</test>128129<!-- VM Design 1869: verify that fvtest options for verifyHeapAbove and verifyHeapBelow work as expected -->130<test id="verifyHeapAbove works">131<command>$EXE$ $XINT$ -Xgc:fvtest=verifyHeapAbove=1 NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</command>132<output regex="no" type="success">NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</output> <!-- managed to bootstrap -->133<output regex="no" type="failure">JVMJ9VM015W</output> <!-- failed to bootstrap -->134</test>135<test id="verifyHeapAbove and verifyHeapBelow force failure">136<command>$EXE$ $XINT$ -Xgc:fvtest=verifyHeapAbove=2g,fvtest=verifyHeapBelow=2g NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</command>137<output regex="no" type="success">JVMJ9VM015W</output> <!-- should fail to bootstrap -->138<output regex="no" type="failure">NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</output> <!-- shouldn't bootstrap -->139</test>140141<!-- Tests that we either succeed or fail gracefully when trying to bootstrap with a 6G heap.142This was originally created for CMVC 134503 since we were concerned that we would lose the ability143top bootstrap compressed refs with a >4G heap, at some point. Timeout or crash is incorrect. -->144<test id="-Xmx6g either succeeds or fails with the appropriate error message">145<command>$EXE$ $XINT$ -Xmx6g -Xms6g -Xdump:none NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</command>146<output regex="no" type="success"></output> <!-- take any output as valid except Unhandled exception and ASSERTION FAILED -->147<output regex="no" type="success">JVMJ9GC028E</output> <!-- JVMJ9GC028E Option too large: '-Xmx6g' -->148<output regex="no" type="success">JVMJ9VM015W</output> <!-- JVMJ9VM015W Initialization error for library j9gc25(5): Failed to allocate default memory space -->149<output regex="no" type="success">NON_EXISTENT_CLASS_TO_TEST_BOOTSTRAP</output>150<output regex="no" type="success">java.lang.OutOfMemoryError</output>151<output regex="no" type="failure">java.lang.OutOfMemoryError: Java heap space</output>152<output regex="no" type="failure">Unhandled exception</output>153<output regex="no" type="failure">ASSERTION FAILED</output>154</test>155156<!-- Tests that we can bootstrap and run a few GCs when -Xsoftrefthreshold0 is specified (we use the contraction157test class since it does lots of allocation and then calls System.gc() several times which is exactly what we158need to test) -->159<test id="-Xsoftrefthreshold0 can bootstrap and run without assertion failures">160<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xsoftrefthreshold0 $RT_ALLOCATION_CONTEXT_ARG$ -Xmx16m -Xms1m -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=99 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --noContract</command>161<!-- we don't really care if this test printed PASS or FAIL since we are testing a more generic situation than the test was originally162built for and it will differ across specs due to different default behaviour or contraction limits -->163<output regex="no" type="success">PASS</output>164<output regex="no" type="success">FAIL</output>165<output regex="no" type="success">Test error</output>166<output regex="no" type="failure">ASSERTION FAILED</output>167</test>168169<!-- Tests Work Packet Overflow handler - limit number of available work packets to minimum -->170<test id="Work PacketOverflow can be handled without assertion failures">171<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xgcworkpackets20 -Xsoftrefthreshold0 $RT_ALLOCATION_CONTEXT_ARG$ -Xmx16m -Xms1m -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=99 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --noContract</command>172<!-- we don't really care if this test printed PASS or FAIL since we are testing a more generic situation than the test was originally173built for and it will differ across specs due to different default behaviour or contraction limits -->174<output regex="no" type="success">PASS</output>175<output regex="no" type="success">FAIL</output>176<output regex="no" type="success">Test error</output>177<output regex="no" type="failure">ASSERTION FAILED</output>178</test>179180<!-- Tests Remembered Set Overflow handler - limit maximum size of RS -->181<test id="Remembered Set Overflow can be handled without assertion failures">182<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xmrx1K -Xsoftrefthreshold0 $RT_ALLOCATION_CONTEXT_ARG$ -Xmx16m -Xms1m -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=99 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --noContract</command>183<!-- we don't really care if this test printed PASS or FAIL since we are testing a more generic situation than the test was originally184built for and it will differ across specs due to different default behaviour or contraction limits -->185<output regex="no" type="success">PASS</output>186<output regex="no" type="success">FAIL</output>187<output regex="no" type="success">Test error</output>188<output regex="no" type="success">JVMJ9VM007E</output>189<output regex="no" type="failure">ASSERTION FAILED</output>190</test>191192<!-- Tests Scavenger Backout - push every 3rd scavenge be backout -->193<test id="Scavenger Backout can be handled without assertion failures">194<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xgc:fvtest=forceScavengerBackout -Xsoftrefthreshold0 $RT_ALLOCATION_CONTEXT_ARG$ -Xmx16m -Xms1m -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=99 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --noContract</command>195<!-- we don't really care if this test printed PASS or FAIL since we are testing a more generic situation than the test was originally196built for and it will differ across specs due to different default behaviour or contraction limits -->197<output regex="no" type="success">PASS</output>198<output regex="no" type="success">FAIL</output>199<output regex="no" type="success">Test error</output>200<output regex="no" type="success">JVMJ9VM015W</output>201<output regex="no" type="failure">ASSERTION FAILED</output>202</test>203204<!-- Tests Run-Time object alignment for Compressed Refs. Non-CR platforms just reports Unknown option -->205<test id="Run Time object alignment for Compressed Refs can be handled without assertion failures">206<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -XXgc:forcedShiftingCompressionAmount=4 -Xsoftrefthreshold0 $RT_ALLOCATION_CONTEXT_ARG$ -Xmx16m -Xms1m -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=99 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --noContract</command>207<!-- we don't really care if this test printed PASS or FAIL since we are testing a more generic situation than the test was originally208built for and it will differ across specs due to different default behaviour or contraction limits -->209<output regex="no" type="success">PASS</output>210<output regex="no" type="success">FAIL</output>211<output regex="no" type="success">Test error</output>212<output regex="no" type="success">JVMJ9VM015W</output>213<output regex="no" type="success">JVMJ9GC040E</output>214<output regex="no" type="failure">ASSERTION FAILED</output>215</test>216217<!-- Tests for excessive GC handling -->218<!-- This test should cause excessive with the FVT option and force an OOM. We must make sure that the verbose log219includes the excessive and the program output doesn't claim successful execution -->220<!-- We do this as two tests since we want to see both parts of this output individually -->221<!-- -Xdump:none so that the OOM doesn't produce any diagnostic files -->222<test id="Excessive GC throws OOM">223<echo value="CMVC 148977: Excessive GC throws OOM may fail if there is other activity on the machine - at least 5 GCs are required, in the 20 second test" />224<!-- does the test fail to run (thus implying that we encountered excessive GC)? -->225<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xdump:none -Xms8m -Xmx8m -Xgc:fvtest=forceExcessiveAllocFailureAfter=5 -verbose:gc -Xverbosegclog:foo.log $CP$ com.ibm.tests.garbagecollector.SpinAllocate 20</command>226<output regex="no" type="failure">Test ran to completion</output>227<output regex="no" type="success">java.lang.OutOfMemoryError</output>228</test>229<test id="Excessive GC throws OOM on RISC-V">230<echo value="CMVC 148977: Excessive GC throws OOM may fail if there is other activity on the machine - at least 5 GCs are required, in the 20 second test" />231<!-- does the test fail to run (thus implying that we encountered excessive GC)? -->232<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xdump:none -Xms2m -Xmx2m -Xgc:fvtest=forceExcessiveAllocFailureAfter=5 -verbose:gc -Xverbosegclog:foo.log $CP$ com.ibm.tests.garbagecollector.SpinAllocate 20</command>233<output regex="no" type="failure">Test ran to completion</output>234<output regex="no" type="success">java.lang.OutOfMemoryError</output>235</test>236<test id="Excessive GC appears in verbose log">237<!-- did the test record this excessive behaviour in the verbose logs? -->238<command command="grep">239<arg>$EXCESSIVE_STRING$</arg>240<arg>foo.log</arg>241</command>242<output regex="no" type="success">$EXCESSIVE_STRING$</output>243</test>244245<!-- Tests for verbose gc -->246<test id="-verbose:gc">247<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -version</command>248<output regex="no" type="success"></verbosegc></output>249</test>250<test id="-verbose:gc -Xverbosegclog creates file">251<exec command="sh">252<arg>-c</arg>253<arg>rm verbosegc.????????.*.*.txt static_temp.txt</arg>254</exec>255<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog -version" />256<!-- This use of static_temp.txt is a hack to account for how the "command" tag seems to be implemented differently from exec257to the point where getting consistent wildcard use on different shells is not possible -->258<exec command="sh">259<arg>-c</arg>260<arg>mv verbosegc.????????.*.*.txt static_temp.txt</arg>261</exec>262<command>cat static_temp.txt</command>263<output regex="no" type="success"></verbosegc></output>264</test>265<test id="-verbose:gc -Xverbosegclog not on console">266<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog -version</command>267<!-- verbose GC output shouldn't appear on the console -->268<output regex="no" type="failure"><verbosegc</output>269<output regex="no" type="success"></output>270</test>271<test id="-verbose:gc -Xverbosegclog:foo.log">272<exec command="rm foo.log" />273<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.log -version" />274<command>cat foo.log</command>275<output regex="no" type="success"></verbosegc></output>276</test>277<test id="-verbose:gc -Xverbosegclog:foo.log,10,10 - first file">278<!-- check the first file created is named foo.log.001 -->279<exec command="rm foo.log.*" />280<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.log,10,10 -version" />281<command>cat foo.log.001</command>282<output regex="no" type="success"></verbosegc></output>283</test>284<test id="-verbose:gc -Xverbosegclog:foo.log,10,10 - second file">285<!-- check the second file created is named foo.log.002 -->286<exec command="rm foo.log.*" />287<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.log,10,10 -version" />288<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.log,10,10 -version" />289<command>cat foo.log.002</command>290<output regex="no" type="success"></verbosegc></output>291</test>292<test id="-verbose:gc -Xverbosegclog:foo.log,3,10 - oldest file">293<!-- check the second file created is named foo.log.002 -->294<exec command="rm foo.log.*" />295<exec command="touch foo.log.002" />296<exec command="sleep 2" />297<exec command="touch foo.log.001" />298<exec command="touch foo.log.003" />299<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.log,3,10 -version" />300<command>cat foo.log.002</command>301<output regex="no" type="success"></verbosegc></output>302</test>303<test id="-verbose:gc -Xverbosegclog:foo.#.log,10,10 - use hash">304<!-- check the file created is named foo.001.log -->305<exec command="rm foo.*.log" />306<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.#.log,10,10 -version" />307<command>cat foo.001.log</command>308<output regex="no" type="success"></verbosegc></output>309</test>310<test id="-verbose:gc -Xverbosegclog:foo.%#.log,10,10 - use percent hash">311<!-- check the file created is named foo.001.log -->312<exec command="rm foo.*.log" />313<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.%#.log,10,10 -version" />314<command>cat foo.001.log</command>315<output regex="no" type="success"></verbosegc></output>316</test>317<test id="-verbose:gc -Xverbosegclog:foo.%%#.log,10,10 - use percent percent hash">318<!-- check the file created is named foo.%001.log -->319<exec command="rm foo.*.log" />320<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.%%#.log,10,10 -version" />321<command>cat foo.%001.log</command>322<output regex="no" type="success"></verbosegc></output>323</test>324<test id="-verbose:gc -Xverbosegclog:foo.#.log - use hash without rotating logs">325<!-- check the file created is named foo.#.log -->326<exec command="rm foo.*.log" />327<exec command="$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.#.log -version" />328<command>cat foo.#.log</command>329<output regex="no" type="success"></verbosegc></output>330</test>331332<!-- CMVC 178000 - disable until a new version of the test can be added after the GC promotes333<test id="-verbose:gc -Xverbosegclog:<invalid> - use a file name in a directory that doesn't exist">334<exec command="rm foo.*.log" />335<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo/bar/foo.log -version</command>336<output regex="yes" type="success">JVMJ9GC063E.*'foo/bar/foo\.log'.*</output>337<output regex="no" type="failure">version</output>338</test>339-->340341<test id="-verbose:gc -Xverbosegclog:<verylong>,10,10 - use a very long log file name">342<exec command="rm foo.*.log" />343<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog:foo.#######################################################################################################################################################################################################################################################################################################################.log,10,10 -version</command>344<!-- two success modes -- unable to open file (with correct name), or version printed -->345<!-- use a regex to allow for translated messages -->346<output regex="yes" type="success">JVMJ9GC063E.*'foo\.001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001\.log'.*</output>347<output regex="no" type="success">version</output>348</test>349<test id="-verbose:gc -Xcheck:memory - check for memory corruption">350<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Dibm.java9.forceCommonCleanerShutdown=true -Xcheck:memory:quick,ignoreUnfreedCallsite=zip/:dbgwrapper:unknown:wrapper -version</command>351<output regex="no" type="required"></verbosegc></output>352<output regex="no" type="success">All allocated blocks were freed.</output>353<!-- allow memory leaks since the JIT leaks, unfortunately -->354<output regex="yes" type="success">[0-9]* allocated blocks totaling [0-9]* bytes were not freed before shutdown!</output>355<output regex="no" type="failure">Unhandled exception</output>356</test>357<test id="-verbose:gc -Xcheck:memory -Xverbosegclog:foo.log - check for memory corruption">358<exec command="rm foo.*.log" />359<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -verbose:gc -Xverbosegclog -Dibm.java9.forceCommonCleanerShutdown=true -Xcheck:memory:quick,ignoreUnfreedCallsite=zip/:dbgwrapper:unknown:wrapper -version</command>360<output regex="no" type="success">All allocated blocks were freed.</output>361<!-- allow memory leaks since the JIT leaks, unfortunately -->362<output regex="yes" type="success">[0-9]* allocated blocks totaling [0-9]* bytes were not freed before shutdown!</output>363<output regex="no" type="failure">Unhandled exception</output>364</test>365366<!-- CMVC 158304 virtualized machines which over commit the CPUs cause this test to fail367Tests related to verifying that heap contraction arguments work as expected368<test id="Run with arguments which will make contraction very unlikely">369<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xmx16m -Xms1m -Xminf0.01 -Xmaxf0.1 -Xmaxe512k -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=99 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --verbose --noContract</command>370<output regex="no" type="success">PASS</output>371</test>372<test id="Run with arguments which will make contraction occur very quickly">373<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xmx16m -Xms1m -Xminf0.01 -Xmaxf0.1 -Xmaxe512k -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=1 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --verbose --fastContract</command>374<output regex="no" type="success">PASS</output>375</test>376<test id="Run with arguments which will make contraction happen slowly">377<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xmx16m -Xms1m -Xminf0.01 -Xmaxf0.1 -Xmaxe512k -Xgc:globalMaximumContraction=5 -Xgc:globalMinimumContraction=1 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --verbose --slowContract</command>378<output regex="no" type="success">PASS</output>379</test>380<test id="Run with arguments which will make contraction occur very quickly and will cause workpacket overflow">381<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ -Xgcworkpackets1 -Xmx16m -Xms1m -Xminf0.01 -Xmaxf0.1 -Xmaxe512k -Xgc:globalMaximumContraction=100 -Xgc:globalMinimumContraction=1 $CP$ com.ibm.tests.garbagecollector.TestContractionMain --verbose --fastContract</command>382<output regex="no" type="success">PASS</output>383</test>384-->385386<!-- Tests related to heavy classunloading -->387<test id="Unload lots of classes using normal behaviour (JIT Disabled)">388<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ $VMARGS$ $RT_ALLOCATION_CONTEXT_ARG$ $CP$ $PROGRAM$ - - -</command>389<output regex="no" "success">Successful test run!</output>390</test>391<test id="Unload lots of classes using FVT stress argument to force finalization (JIT Disabled)">392<command>$EXE$ $XINT$ $ARGS_FOR_ALL_TESTS$ $VMARGS$ $EXTRAVMARG$ $RT_ALLOCATION_CONTEXT_ARG$ $CP$ $PROGRAM$ - - -</command>393<output regex="no" type="success">Successful test run!</output>394</test>395<test id="Unload lots of classes using normal behaviour (with JIT if JIT is Enabled)">396<command>$EXE$ $ARGS_FOR_ALL_TESTS$ $VMARGS$ $RT_ALLOCATION_CONTEXT_ARG$ $CP$ $PROGRAM$ - - -</command>397<output regex="no" type="success">Successful test run!</output>398<!-- let the test pass even if we couldn't load the JIT since this test failing when the JIT can't compile is not a useful piece of information -->399<output regex="no" type="success">Cannot load library required by: -Xjit</output>400</test>401<test id="Unload lots of classes using FVT stress argument to force finalization (with JIT if JIT is Enabled)">402<command>$EXE$ $ARGS_FOR_ALL_TESTS$ $VMARGS$ $EXTRAVMARG$ $RT_ALLOCATION_CONTEXT_ARG$ $CP$ $PROGRAM$ - - -</command>403<output regex="no" type="success">Successful test run!</output>404<!-- let the test pass even if we couldn't load the JIT since this test failing when the JIT can't compile is not a useful piece of information -->405<output regex="no" type="success">Cannot load library required by: -Xjit</output>406</test>407408<!-- Ensure that none of these tests left core files behind (introduced because -XX:fatalassert isn't properly supported in all specs) -->409<test id="Ensure no core files have been produced by the preceding tests">410<command command="sh">411<arg>-c</arg>412<arg>ls</arg>413</command>414<output regex="no" type="success"></output>415<output regex="yes" type="failure">core.*</output>416</test>417</suite>418419420