test for inner and anon class
Steve Sides
steve.sides at oracle.com
Fri May 24 13:48:39 PDT 2013
On 5/23/2013 6:05 PM, Jonathan Gibbons wrote:
> On 05/23/2013 05:55 PM, Steve Sides wrote:
>> Hi Werner,
>> I updated the test I had for Inner and anonymous classes. It has
>> been blocked by a few bugs (listed @bug) which are now fixed.
>> However, as I started enabling the tests I ran in to a couple more.
>> The test is here,
>> http://cr.openjdk.java.net/~ssides/8015323/
>> but it will fail due to these two
>>
>> 8015323 If class InnerAnnon is instantiated, type annotations on
>> ia_m1() are incorrectly written to classfile.
>>
>> 8015257 A type annotation with ElementTypes TYPE_USE and FIELD placed
>> on type
>> argument is placed on the ctor if repeated and on the field if not
>> repeated.
>>
>> There is currently an @ignore on the test as I wasn't sure which repo
>> this might want to go into, and if in tl/langtools it should have the
>> ignore.
>> The affect parts of the test are noted in the generated test
>> sources(if you comment out all the next lines, it'll pass).
>>
>> The 8015323 scenario used to crash, not they're written incorrectly.
>> 8015727 used to not write to classfile at all if repeated, not it
>> just writes incorrectly.
>>
>> The test case is a little clunky looking, but it found several bugs
>> and I found it runs faster and is very easy to diagnose and narrow
>> down a test case.
>>
>> -steve
>>
>>
>
> Steve,
>
> Nice test.
>
> I don't know if it would ease maintenance, but one suggestion might be
> to move the testsource string into a separate file, called something
> like testsource.template, and then read it into a String use
> java.nio.file.Files API. I know normally we keep the template within
> the main source file, but this template is getting pretty long.
> Anyway, just a suggestion, for your ease-of-use. Your call.
>
> -- Jon
I put the source in a template file. I created a new webrev for it since
it's not checked in anywhere yet.
http://sqeweb.us.oracle.com/coretools/ssides/webrevs/8015323.1/webrev.01/
As is, it does not have @ignore and it fails with the buggy lines having
comments above them in the template.
-steve
More information about the type-annotations-dev
mailing list