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

Akira Ajisaka commented on HADOOP-14178:
----------------------------------------

Thanks [~iwasakims] for reviewing this. I really appreciate that.
bq. Is changing argument of times relevant to Mockit compatibility?
The change is derived from a bug fix of Mockito rather than compatibility.
{code}
@@ -85,9 +85,9 @@ public void testKillAMPreemptPolicy() {
     policy.init(mActxt);
     pM = getPreemptionMessage(true, false, container);
     policy.preempt(mPctxt, pM);
-    verify(mActxt.getEventHandler(), times(2)).handle(
+    verify(mActxt.getEventHandler(), times(1)).handle(
         any(TaskAttemptEvent.class));
-    verify(mActxt.getEventHandler(), times(2)).handle(
+    verify(mActxt.getEventHandler(), times(1)).handle(
         any(JobCounterUpdateEvent.class));
{code}
Without upgrading Mockito, the above change causes test failure, and the error 
message is as follows:
{noformat}
[ERROR] Failures: 
[ERROR]   TestKillAMPreemptionPolicy.testKillAMPreemptPolicy:88 
eventHandler.handle(<any>);
Wanted 1 time:
-> at 
org.apache.hadoop.mapreduce.v2.app.TestKillAMPreemptionPolicy.testKillAMPreemptPolicy(TestKillAMPreemptionPolicy.java:88)
But was 2 times. Undesired invocation:
-> at 
org.apache.hadoop.mapreduce.v2.app.rm.preemption.KillAMPreemptionPolicy.killContainer(KillAMPreemptionPolicy.java:84)
{noformat}
In TestKillAMPreemptionPolicy L88, the test case want to count the invocation 
of {{handle(TaskAttemptEvent.class)}}, however, KillAMPreemptionPolicy.java L84 
calls {{handle(JobCounterUpdateEvent.class)}} and it is wrongly counted by the 
older version of Mockito.


> Move Mockito up to version 2.x
> ------------------------------
>
>                 Key: HADOOP-14178
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14178
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: test
>    Affects Versions: 2.9.0
>            Reporter: Steve Loughran
>            Assignee: Akira Ajisaka
>            Priority: Major
>         Attachments: HADOOP-14178.001.patch, HADOOP-14178.002.patch, 
> HADOOP-14178.003.patch, HADOOP-14178.004.patch, HADOOP-14178.005-wip.patch, 
> HADOOP-14178.005-wip2.patch, HADOOP-14178.005-wip3.patch, 
> HADOOP-14178.005-wip4.patch, HADOOP-14178.005-wip5.patch, 
> HADOOP-14178.005-wip6.patch, HADOOP-14178.005.patch, HADOOP-14178.006.patch, 
> HADOOP-14178.007.patch, HADOOP-14178.008.patch, HADOOP-14178.009.patch, 
> HADOOP-14178.010.patch, HADOOP-14178.011.patch, HADOOP-14178.012.patch, 
> HADOOP-14178.013.patch, HADOOP-14178.014.patch, HADOOP-14178.015.patch, 
> HADOOP-14178.016.patch, HADOOP-14178.017.patch, HADOOP-14178.018.patch, 
> HADOOP-14178.019.patch, HADOOP-14178.020.patch, HADOOP-14178.021.patch, 
> HADOOP-14178.022.patch, HADOOP-14178.023.patch, HADOOP-14178.024.patch, 
> HADOOP-14178.025.patch, HADOOP-14178.026.patch, HADOOP-14178.027.patch, 
> HADOOP-14178.028.patch, HADOOP-14178.029.patch, HADOOP-14178.030.patch, 
> HADOOP-14178.031.patch, HADOOP-14178.032.patch
>
>
> I don't know when Hadoop picked up Mockito, but it has been frozen at 1.8.5 
> since the switch to maven in 2011. 
> Mockito is now at version 2.1, [with lots of Java 8 
> support|https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2]. 
> That' s not just defining actions as closures, but in supporting Optional 
> types, mocking methods in interfaces, etc. 
> It's only used for testing, and, *provided there aren't regressions*, cost of 
> upgrade is low. The good news: test tools usually come with good test 
> coverage. The bad: mockito does go deep into java bytecodes.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to