You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by GitBox <gi...@apache.org> on 2019/08/01 13:39:01 UTC

[GitHub] [hadoop] dineshchitlangia commented on a change in pull request #1205: HDDS-1886. Use ArrayList#clear to address audit failure scenario

dineshchitlangia commented on a change in pull request #1205: HDDS-1886. Use ArrayList#clear to address audit failure scenario
URL: https://github.com/apache/hadoop/pull/1205#discussion_r309700845
 
 

 ##########
 File path: hadoop-hdds/common/src/test/java/org/apache/hadoop/ozone/audit/TestOzoneAuditLogger.java
 ##########
 @@ -153,7 +153,7 @@ private void verifyLog(String expected) throws IOException {
     assertTrue(lines.size() != 0);
     assertTrue(expected.equalsIgnoreCase(lines.get(0)));
     //empty the file
-    lines.remove(0);
+    lines.clear();
 
 Review comment:
   @adoroszlai Thanks for review & suggestions.
   
   > 1. Wrap assertions and cleanup in `try` and `finally`, respectively.  Otherwise a failed assertion would cause all further independent test cases to also fail due to leftover content in the file.  (This one is not specific to multi-line cases.)
   
   Yes, that was the original approach, however, the review at the time preferred to throw the Exception instead of catching it. This is because we won't accept a few failures, the criteria required is all tests must pass.
   
   > 2. Make `verifyLog` accept `String...` and check each expected line.  Also, retry reading the file until it has enough lines instead of being non-empty.
   
   In this test for the base framework of audit logging, we invoke verifyLog each time a log worthy event has occurred. So at any time, the recent event is the only event in the audit log. Hence we verify only one line at a time as they are invoked by different tests.
   
   > 3. I think using `assertEquals` would make it easier to spot differences between expected and actual values. (I'm not sure case-ignorance is really important.  Currently the test passes with strict case check, too.)
   Again, since the test was for base audit logging framework, strict checking was required in the original.
   
   That said, the goal of current jira is only to move away from using ArrayList#remove. I will file a jira to refactor this test class so that it doesn't rely on hard coded messages. We can address any other suggestions in that jira.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org