[ 
https://issues.apache.org/jira/browse/HDFS-9848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15174647#comment-15174647
 ] 

Chris Nauroth commented on HDFS-9848:
-------------------------------------

Hi [~anu].  This looks good overall.  Just a few minor notes on the tests:

{code}
    try {
      client = new OzoneClient(String.format("http://localhost:%d";, port));
    } catch (OzoneException | URISyntaxException e) {
      Assert.assertTrue("Failed to create an Ozone Client." + e.getMessage()
          , false);
    }
{code}

Usually, I'd just let these exceptions be thrown out of the method.  If the 
exception is thrown, JUnit will report it with a full stack trace to aid 
troubleshooting.  If you prefer to handle the exception so that you can emit 
the custom "Failed to create" message, then I'd recommend using {{Assert.fail}} 
instead of an {{Assert.assertTrue}} that fails on purpose.

{code}
  @Test
  public void testCreateDuplicateVolume() throws OzoneException {
    try {
      client.setUserAuth(OzoneConsts.OZONE_SIMPLE_HDFS_USER);
      client.createVolume("testVol", "bilbo", "100TB");
      client.createVolume("testVol", "bilbo", "100TB");
    } catch (Exception ex) {
      // OZone will throw saying volume already exists
      assertNotNull(ex);
    }
  }
{code}

As currently written, this test always passes, even when it shouldn't.  If any 
of the client calls fails for any reason, then it will go to the exception 
handler.  {{ex}} is guaranteed to be non-null always, so the {{assertNotNull}} 
is effectively a no-op and the test passes.  If all 3 client calls succeed, 
then the overall test is a success, even though we wanted it to cover duplicate 
volume error handling.  From debugging, I can see that what is actually 
happening when the test runs is it throws "java.lang.IllegalArgumentException: 
Bucket or Volume name does not support uppercase characters", so the test also 
needs to be changed to use a different volume name.

> Ozone: Add Ozone Client lib for volume handling
> -----------------------------------------------
>
>                 Key: HDFS-9848
>                 URL: https://issues.apache.org/jira/browse/HDFS-9848
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: ozone
>    Affects Versions: HDFS-7240
>            Reporter: Anu Engineer
>            Assignee: Anu Engineer
>             Fix For: HDFS-7240
>
>         Attachments: HDFS-9848-HDFS-7240.001.patch, 
> HDFS-9848-HDFS-7240.002.patch, HDFS-9848-HDFS-7240.003.patch, 
> HDFS-9848-HDFS-7240.004.patch
>
>
> Add a simple client lib for volume handling. This is used primarily to make 
> writing tests simpler.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to