[ 
https://issues.apache.org/jira/browse/HDDS-16942?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HDDS-16942:
----------------------------------
    Labels: pull-request-available  (was: )

> Fix negative Mockito checks in TestCreatePipelineCommandHandler and 
> TestECUnderReplicationHandler that cannot fail
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDDS-16942
>                 URL: https://issues.apache.org/jira/browse/HDDS-16942
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: Ozone Datanode, SCM
>            Reporter: Chi-Hsuan Huang
>            Assignee: Andy Huang
>            Priority: Minor
>              Labels: pull-request-available
>
> Follow-up to HDDS-16885, which fixes the same pattern in {{TestMoveManager}}.
> Two more negative Mockito checks cannot fail today, so they would miss the 
> regression they were added for.
> *{{TestCreatePipelineCommandHandler#testCommandIdempotency}}*
> * It verifies {{times(0)}} on the 2 argument {{XceiverServerSpi.addGroup}}. 
> Since HDDS-2922, {{CreatePipelineCommandHandler}} only calls the 3 argument 
> overload with {{priorityList}}.
> * The test also builds the handler with the {{conf}} constructor, so the real 
> Raft client is used. The {{raftClientGroupManager}} {{times(0)}} check is 
> never reached either.
> *{{TestECUnderReplicationHandler#testMaintenanceDoesNotRequestZeroNodes}}*
> * It verifies {{times(0)}} on the 5 argument {{chooseDatanodes(..., eq(0), 
> ...)}}. Since HDDS-8504, the EC handler always passes {{usedNodes}}, so only 
> the 6 argument overload is called.
> * Moving to the 6 argument overload is not enough. {{getTargetDatanodes}} 
> never asks for 0 nodes, so {{eq(0)}} can never match.
> Checked with local mutations on master:
> * Making {{CreatePipelineCommandHandler}} skip the {{isExist}} check: the 
> current test passes. With the 3 argument verify, it fails.
> * Removing the {{additionalMaintenanceCopiesNeeded == 0}} guard from 
> HDDS-7683: the current test passes, and so does a 6 argument {{eq(0)}} 
> verify. Verifying {{chooseDatanodes}} is called exactly once fails as 
> expected.
> Proposed changes (test only):
> * {{testCommandIdempotency}}: verify the 3 argument {{addGroup}}, and inject 
> the mocked Raft client like {{testPipelineCreation}} does.
> * {{testMaintenanceDoesNotRequestZeroNodes}}: verify the 6 argument 
> {{chooseDatanodes}} is called {{times(1)}}.



--
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