Attila Doroszlai created HDDS-9948:
--------------------------------------

             Summary: Compose annotation for tests parameterized with 
ContainerLayoutVersion
                 Key: HDDS-9948
                 URL: https://issues.apache.org/jira/browse/HDDS-9948
             Project: Apache Ozone
          Issue Type: Improvement
          Components: test
            Reporter: Attila Doroszlai


{{ContainerLayoutVersion}} is used in several classes to parameterize test 
methods.

Example usage:

{code:title=https://github.com/apache/ozone/blob/3f35ab738d84000b747396f1f68c5977476ec6a1/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java#L112-L114}
  @ParameterizedTest
  @MethodSource("layoutVersion")
  public void closeContainerWithPipeline(ContainerLayoutVersion layout)
{code}

All usages (found so far):

{code}
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDataYaml.java
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDeletionChoosingPolicy.java
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerSet.java
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainerMarkUnhealthy.java
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueHandler.java
hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestChunkInputStream.java
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
{code}

The goal of this task is to reduce code duplication by defining a [composite 
annotation|https://junit.org/junit5/docs/current/user-guide/#writing-tests-meta-annotation].

Please see similar annotation defined for {{ContainerTestVersionInfo}} in 
HDDS-9932:

{code:title=https://github.com/apache/ozone/blob/3f35ab738d84000b747396f1f68c5977476ec6a1/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/ContainerTestVersionInfo.java#L43-L52}
  /**
   * Composite annotation for tests parameterized with {@link 
ContainerTestVersionInfo}.
   */
  @Target(ElementType.METHOD)
  @Retention(RetentionPolicy.RUNTIME)
  @ParameterizedTest
  
@MethodSource("org.apache.hadoop.ozone.container.keyvalue.ContainerTestVersionInfo#getLayoutList")
  public @interface ContainerTest {
    // composite annotation
  }
{code}

and its usage:

{code:title=https://github.com/apache/ozone/blob/3f35ab738d84000b747396f1f68c5977476ec6a1/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainer.java#L179-L181}
  @ContainerTestVersionInfo.ContainerTest
  public void testCreateContainer(ContainerTestVersionInfo versionInfo)
      throws Exception {
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to