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