RFR 8231710: Add timeout asserting method to test library
Martin Buchholz
martinrb at google.com
Thu Jan 9 16:18:16 UTC 2020
There's a lot of prior art in JSR166TestCase.java.
In general, junit/testng don't have support for test methods that need to
run code in more than one thread, and jsr166 tck tests do that a lot.
Often you want a higher-level blocking API like:
public void await(CountDownLatch latch, long timeoutMillis) {
boolean timedOut = false;
try {
timedOut = !latch.await(timeoutMillis, MILLISECONDS);
} catch (Throwable fail) {
threadUnexpectedException(fail);
}
if (timedOut)
fail("timed out waiting for CountDownLatch for "
+ (timeoutMillis/1000) + " sec");
}
public void await(CountDownLatch latch) {
await(latch, LONG_DELAY_MS);
}
On Thu, Jan 9, 2020 at 5:47 AM Julia Boes <julia.boes at oracle.com> wrote:
> Hi,
>
> This test-only RFR proposes a tool for timeout testing for the JDK test
> library. It runs a task in a separate thread and cancels the task if it
> doesn't complete within a given timeout. Any exception thrown by the
> task is propagated transparently.
>
> TestNG doesn't currently provide this functionality but it seems like a
> handy little tool to have. The webrev includes several sample use cases.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8231710
> Webrev: http://cr.openjdk.java.net/~jboes/webrevs/8231710/webrev.01/
>
> Any feedback appreciated.
>
> Regards,
> Julia
>
>
>
More information about the core-libs-dev
mailing list