Please take a review at

  http://cr.openjdk.java.net/~weijun/8087144/webrev.00/

for

8087144: sun/security/krb5/auto/MaxRetries.java fails with Retry count is -1 less
   8153146: sun/security/krb5/auto/MaxRetries.java failed with timeout

The test fails because a timeout happens on a real KDC. If a retry is permitted, this retry is treated as unexpected (8087144), otherwise, a timeout exception is thrown (8153146).

The rewritten test does not always pursue for a single correct result. Instead, it encodes the test output into a string, and compares it to both an ideal exact result (real KDC never timeout) or a relaxed one (real KDC could timeout once for a while) and succeeds if either matches. The relaxed result is a regular expression.

Before this change, the stability of the test is guaranteed (although not successfully) by using a big timeout value (say, 5 seconds). Now that we have the relaxed match, I am thinking it can be smaller. The current code change uses BadKdc.setRatio() to change the effective timeout value to 1 second. The test execution time is reduced from 180s to 30s on my machine.

If the test still fails intermittently, maybe the relaxed match is not relaxed enough, or I should set a higher ratio. Let's wait and see.

Thanks
Max

Reply via email to