[OpenJDK 2D-Dev] RFR 8144446: Automate the Marlin crash test

Laurent Bourgès bourges.laurent at gmail.com
Wed Dec 9 23:10:42 UTC 2015


Jim,

My last chance for tonight !

Here is another webrev that disables two long tests (dasher) in CrashTest
but fixes a state cleanup bug in Renderer (doChecks=true):
http://cr.openjdk.java.net/~lbourges/marlin/marlin-8144446.2/

Note: the modified CrashTest detected this bug in Renderer (happening only
with 2Gb off-heap overflow) so I keep both classes together in the same
patch as the fix in Renderer is very small.

The CrashTest seems faster now.

Laurent

2015-12-09 23:31 GMT+01:00 Jim Graham <james.graham at oracle.com>:

> Hi Laurent,
>
> That sounds good.  I'm all for fast tests!  ;)
>
> We might want to fix them in separate bugs, though.  If the new mods to
> the test case lead to failures, then we should integrate them after we fix
> the underlying problems, though, to prevent testing failures that might
> block an integration...
>
>                         ...jim
>
> On 12/9/15 2:25 PM, Laurent Bourgès wrote:
>
>> Jim,
>>
>> Thanks for explaining me the different jtreg modes (newbie) !
>>
>> I tried disabling few long tests (using dashes) that are less critical
>> (no failure expected, just insane rendering work):
>>              test(0.1f, false, 0);
>>              test(0.1f, true, 7f);
>>
>> Doing so, I detected a new issue in the Renderer.dispose() when the
>> addLine() fails due to the AIOB (2GB off-heap overflow):
>> the range buckets_minY/maxY are not properly set, normally by
>> endRendering(), and the edgeBucket arrays are not properly zero-filled !
>>
>> I will work on this issue ASAP and propose a fix within the same bug.
>>
>> Maybe we should defer this fix as I agree it can be made faster ~ 12s
>> now vs 52s before on my laptop.
>>
>> Laurent
>>
>> 2015-12-09 22:31 GMT+01:00 Jim Graham <james.graham at oracle.com
>> <mailto:james.graham at oracle.com>>:
>>
>>
>>     Hi Laurent,
>>
>>     One clarification - there are levels of automation.
>>
>>     On 12/9/15 6:35 AM, Laurent Bourgès wrote:
>>
>>         Agreed it is possible but then the bug JDK-8144446
>>         <https://bugs.openjdk.java.net/browse/JDK-8144446> becomes
>> invalid.
>>
>>
>>     Prior to this fix, jtreg wouldn't even see the test since it did not
>>     have any tags in it at all.  Adding tags of "some sort" makes it
>>     able to be run by the test mechanism, which I call "automated".
>>     Right now, nobody who runs jtreg will run this test no matter what
>>     command line arguments they use with the tool.
>>
>>     Once jtreg recognizes a test there are variations that let it decide
>>     when/if to run it.  It has 3 main modes (related to the /manual tag):
>>
>>     no options - all tests are run, both manual and automatic
>>     -a - ignore all /manual tests
>>     -m - run only /manual tests
>>
>>     -a primarily means "there is no human here to provide interaction",
>>     but a few non-manual tests take a long time.
>>
>>     On the other hand, I just did a test run of all tests (with -a) in
>>     sun/java2d and the total time was so long that the 30 seconds wasn't
>>     that noticeable.  On the other hand, there were a lot of tests run
>>     so the long time was less because a lot of tests take a long time
>>     than it was about the fact that a lot of conditions were tested in
>>     that time. For the record, the next longest test in that part of the
>>     repo takes 8 seconds, so this new test is almost 5 times longer than
>>     any existing java2d test.  Only the longest 4 tests took more than 5
>>     seconds.
>>
>>     I did find a test with "@ignore slow test" in another part of the
>>     repo and I ran it and it took 8 seconds as well, so somebody out
>>     there considers 8 seconds to be too long to run under ordinary
>>     circumstances.
>>
>>     I tend to want to push hard on making tests be faster and leaner.  I
>>     see so many bug fixes come in with automated tests that only have to
>>     run a single method and see if it returns the right answer and yet
>>     somehow the test needs to launch a Frame and wait for it to open and
>>     then do a screen readback - when a simple render to a BufferedImage
>>     would take 1/100th the time.
>>
>>     I'll withdraw my suggestion to make this one /manual, but it would
>>     be nice if it could do its work in just a few seconds instead...
>>
>>


-- 
-- 
Laurent Bourgès
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20151210/6c0c0a9a/attachment.html>


More information about the 2d-dev mailing list