Gary, On 17/11/2011 2:29 AM, Gary Adams wrote:
The jtreg tests that use othervm along with a timeout argument should be fairly reliable in getting a consistent result. The tests that did not specify othervm may run into problems, if they are run concurrently with other tests.
Given they are not run concurrently with other tests (modulo the testing framework [gtee/ute not jtreg] running multiple testsuites on the same machine) the only issue I can see that would impact samevm mode is if other test lefts threads behind. I'm not sure if this is possible with jtreg, but if it were then it is those other tests that need to be fixed.
As Alan indicated we want to reduce use of othervm where we can because often the overhead of launching a new VM far outweighs the execution time of a successful test.
David -----
Here's a quick sampling of the java/util and java/lang tests that might have issues. Would there be any harm in changing these to designate running in othervm mode? find jdk/test/java/{util,lang} -type f |grep -v hg/|xargs grep -n @run |grep timeout |egrep -v "othervm|shell" jdk/test/java/util/ResourceBundle/Bug4168625Test.java:27: @run main/timeout=600 Bug4168625Test jdk/test/java/util/concurrent/BlockingQueue/CancelledProducerConsumerLoops.java:38: * @run main/timeout=7000 CancelledProducerConsumerLoops jdk/test/java/util/concurrent/BlockingQueue/MultipleProducersSingleConsumerLoops.java:38: * @run main/timeout=3600 MultipleProducersSingleConsumerLoops jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java:38: * @run main/timeout=3600 ProducerConsumerLoops jdk/test/java/util/concurrent/BlockingQueue/SingleProducerMultipleConsumerLoops.java:38: * @run main/timeout=600 SingleProducerMultipleConsumerLoops jdk/test/java/util/concurrent/ConcurrentHashMap/MapCheck.java:38: * @run main/timeout=240 MapCheck jdk/test/java/util/concurrent/ConcurrentHashMap/MapLoops.java:38: * @run main/timeout=1600 MapLoops jdk/test/java/util/concurrent/Exchanger/ExchangeLoops.java:38: * @run main/timeout=720 ExchangeLoops jdk/test/java/util/concurrent/ExecutorCompletionService/ExecutorCompletionServiceLoops.java:38: * @run main/timeout=3600 ExecutorCompletionServiceLoops jdk/test/java/util/concurrent/FutureTask/CancelledFutureLoops.java:38: * @run main/timeout=2000 CancelledFutureLoops jdk/test/java/util/concurrent/locks/ReentrantLock/CancelledLockLoops.java:38: * @run main/timeout=2800 CancelledLockLoops jdk/test/java/util/concurrent/locks/ReentrantLock/LockOncePerThreadLoops.java:38: * @run main/timeout=15000 LockOncePerThreadLoops jdk/test/java/util/concurrent/locks/ReentrantLock/SimpleReentrantLockLoops.java:38: * @run main/timeout=4500 SimpleReentrantLockLoops jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/MapLoops.java:38: * @run main/timeout=4700 MapLoops jdk/test/java/util/logging/LoggingDeadlock.java:32: * @run main/timeout=15 LoggingDeadlock jdk/test/java/util/logging/LoggingDeadlock2.java:31: * @run main/timeout=15 LoggingDeadlock2 jdk/test/java/util/logging/LoggingDeadlock3.java:30: * @run main/timeout=80 LoggingDeadlock3 jdk/test/java/util/logging/LoggingDeadlock4.java:30: * @run main/timeout=15 LoggingDeadlock4 jdk/test/java/util/zip/ZipFile/ManyEntries.java:27: * @run main/timeout=600 ManyEntries jdk/test/java/lang/annotation/AnnotationTypeMismatchException/FoundType.java:29: * @run main/timeout=30 FoundType jdk/test/java/lang/management/MemoryMXBean/CollectionUsageThreshold.java:34: * @run main/timeout=300 CollectionUsageThreshold