[
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: [email protected]
For additional commands, e-mail: [email protected]