--- jsr166/src/test/tck/JSR166TestCase.java 2013/06/03 18:20:05 1.108 +++ jsr166/src/test/tck/JSR166TestCase.java 2013/09/17 06:38:36 1.114 @@ -26,6 +26,7 @@ import java.util.concurrent.atomic.Atomi import java.util.concurrent.atomic.AtomicReference; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.NANOSECONDS; +import java.util.regex.Pattern; import java.security.CodeSource; import java.security.Permission; import java.security.PermissionCollection; @@ -134,12 +135,27 @@ public class JSR166TestCase extends Test private static final int runsPerTest = Integer.getInteger("jsr166.runsPerTest", 1); + /** + * A filter for tests to run, matching strings of the form + * methodName(className), e.g. "testInvokeAll5(ForkJoinPoolTest)" + * Usefully combined with jsr166.runsPerTest. + */ + private static final Pattern methodFilter = methodFilter(); + + private static Pattern methodFilter() { + String regex = System.getProperty("jsr166.methodFilter"); + return (regex == null) ? null : Pattern.compile(regex); + } + protected void runTest() throws Throwable { - for (int i = 0; i < runsPerTest; i++) { - if (profileTests) - runTestProfiled(); - else - super.runTest(); + if (methodFilter == null + || methodFilter.matcher(toString()).find()) { + for (int i = 0; i < runsPerTest; i++) { + if (profileTests) + runTestProfiled(); + else + super.runTest(); + } } } @@ -294,15 +310,19 @@ public class JSR166TestCase extends Test // Java8+ test classes if (atLeastJava8()) { String[] java8TestClassNames = { + "Atomic8Test", "CompletableFutureTest", "ConcurrentHashMap8Test", "CountedCompleterTest", "DoubleAccumulatorTest", "DoubleAdderTest", "ForkJoinPool8Test", + "ForkJoinTask8Test", "LongAccumulatorTest", "LongAdderTest", + "SplittableRandomTest", "StampedLockTest", + "ThreadLocalRandom8Test", }; addNamedTestClasses(suite, java8TestClassNames); } @@ -310,13 +330,13 @@ public class JSR166TestCase extends Test return suite; } + // Delays for timing-dependent tests, in milliseconds. public static long SHORT_DELAY_MS; public static long SMALL_DELAY_MS; public static long MEDIUM_DELAY_MS; public static long LONG_DELAY_MS; - /** * Returns the shortest timed delay. This could * be reimplemented to use for example a Property. @@ -709,7 +729,6 @@ public class JSR166TestCase extends Test public static final Integer m6 = new Integer(-6); public static final Integer m10 = new Integer(-10); - /** * Runs Runnable r with a security policy that permits precisely * the specified permissions. If there is no current security