128 |
|
private static final long profileThreshold = |
129 |
|
Long.getLong("jsr166.profileThreshold", 100); |
130 |
|
|
131 |
+ |
/** |
132 |
+ |
* The number of repetitions per test (for tickling rare bugs). |
133 |
+ |
*/ |
134 |
+ |
private static final int runsPerTest = |
135 |
+ |
Integer.getInteger("jsr166.runsPerTest", 1); |
136 |
+ |
|
137 |
|
protected void runTest() throws Throwable { |
138 |
< |
if (profileTests) |
139 |
< |
runTestProfiled(); |
140 |
< |
else |
141 |
< |
super.runTest(); |
138 |
> |
for (int i = 0; i < runsPerTest; i++) { |
139 |
> |
if (profileTests) |
140 |
> |
runTestProfiled(); |
141 |
> |
else |
142 |
> |
super.runTest(); |
143 |
> |
} |
144 |
|
} |
145 |
|
|
146 |
|
protected void runTestProfiled() throws Throwable { |
232 |
|
RecursiveTaskTest.suite(), |
233 |
|
LinkedTransferQueueTest.suite(), |
234 |
|
PhaserTest.suite(), |
235 |
+ |
SplittableRandomTest.suite(), |
236 |
|
ThreadLocalRandomTest.suite(), |
237 |
|
AbstractExecutorServiceTest.suite(), |
238 |
|
AbstractQueueTest.suite(), |
311 |
|
return suite; |
312 |
|
} |
313 |
|
|
314 |
+ |
// Delays for timing-dependent tests, in milliseconds. |
315 |
|
|
316 |
|
public static long SHORT_DELAY_MS; |
317 |
|
public static long SMALL_DELAY_MS; |
318 |
|
public static long MEDIUM_DELAY_MS; |
319 |
|
public static long LONG_DELAY_MS; |
320 |
|
|
311 |
– |
|
321 |
|
/** |
322 |
|
* Returns the shortest timed delay. This could |
323 |
|
* be reimplemented to use for example a Property. |
710 |
|
public static final Integer m6 = new Integer(-6); |
711 |
|
public static final Integer m10 = new Integer(-10); |
712 |
|
|
704 |
– |
|
713 |
|
/** |
714 |
|
* Runs Runnable r with a security policy that permits precisely |
715 |
|
* the specified permissions. If there is no current security |
1240 |
|
public abstract class CheckedRecursiveAction extends RecursiveAction { |
1241 |
|
protected abstract void realCompute() throws Throwable; |
1242 |
|
|
1243 |
< |
public final void compute() { |
1243 |
> |
@Override protected final void compute() { |
1244 |
|
try { |
1245 |
|
realCompute(); |
1246 |
|
} catch (Throwable t) { |
1255 |
|
public abstract class CheckedRecursiveTask<T> extends RecursiveTask<T> { |
1256 |
|
protected abstract T realCompute() throws Throwable; |
1257 |
|
|
1258 |
< |
public final T compute() { |
1258 |
> |
@Override protected final T compute() { |
1259 |
|
try { |
1260 |
|
return realCompute(); |
1261 |
|
} catch (Throwable t) { |