Location of jtreg tags in tests

Aleksei Ivanov alexey.ivanov at oracle.com
Thu Feb 1 15:48:36 UTC 2024


Hello fellow developers,

Most older tests have the jtreg tags before import statements.

As an example, JList/6462008/bug6462008.java [1] and 
JTextArea/4697612/bug4697612.java [2].

When you open such a test in an IDE, the jtreg tags are collapsed along 
with the copyright and license header. I find it inconvenient. The jtreg 
tags provide important information about the test: its summary, its 
keywords, its requirements and possible parameters.


Over the years, I've been asking people [3][4] to move the jtreg tags to 
the class declaration.

When the jtreg tags are before the class declaration (below the import 
statements), they're not collapsed, which means you see all the jtreg 
tags when you open a test file in the IDE without additional navigation 
or mouse movements.


There were a couple of discussions around this matter [5][6]. No 
decision has been made.

This message is a call for discussion so that we, the client libraries 
developers, agree on a common style.

I propose putting the jtreg tags right above the test class declaration:

import javax.swing.JFrame;

/*
  * @test
  * @bug <bugids>
  * @key headful
  * @summary <description of the test>
  */
public final class SampleTest {


The comment with jtreg tags immediately precedes the test class 
declaration. There's no blank line between the comment and the 
declaration. The comment uses a regular block comment syntax with the 
single asterisk ‘/*’ (as opposed to a javadoc comment which starts with 
double asterisk ‘/**’).

I also propose establishing an order for the tags for consistency [7]. 
Most tests have a convention, the tags usually appear in the following 
order:

@test
@bug
@key
@summary
@library
@build
@run


In addition to that, manual tests do not need ‘@key headful’ because 
“all manual tests are assumed to be headful.” [8]


What do you think?

-- 
Regards,
Alexey

[1] 
https://github.com/openjdk/jdk/blob/70e7cdcb9ecedd455cf701b5c7ad05286ac0067d/test/jdk/javax/swing/JList/6462008/bug6462008.java#L24-L31
[2] 
https://github.com/openjdk/jdk/blob/70e7cdcb9ecedd455cf701b5c7ad05286ac0067d/test/jdk/javax/swing/JTextArea/4697612/bug4697612.java#L24-L29
[3] https://github.com/openjdk/jdk/pull/12180#discussion_r1100013426
[4] https://github.com/openjdk/jdk/pull/11940#discussion_r1102835163
[5] https://github.com/openjdk/jdk/pull/16674#discussion_r1402082665
[6] https://github.com/openjdk/jdk/pull/16785#discussion_r1410944165
[7] https://github.com/openjdk/jdk/pull/16785#discussion_r1403301368
[8] 
https://github.com/prrace/jdk/blob/91d8ea79d947aa7dad91d8ed550ed34a7d49d885/test/jdk/TEST.ROOT#L27


More information about the client-libs-dev mailing list