[ 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