From 442ea85545ce3591f45211773a10346340abaed5 Mon Sep 17 00:00:00 2001 From: Anu Engineer Date: Mon, 2 Oct 2017 13:11:47 -0700 Subject: [PATCH] HADOOP-14752. TestCopyFromLocal#testCopyFromLocalWithThreads is fleaky. Contributed by Andras Bokor. --- .../apache/hadoop/fs/shell/TestCopyFromLocal.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestCopyFromLocal.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestCopyFromLocal.java index 8d354b4156d..8e60540126b 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestCopyFromLocal.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/shell/TestCopyFromLocal.java @@ -115,10 +115,10 @@ public void testCopyFromLocalWithThreads() throws Exception { Path dir = new Path("dir" + RandomStringUtils.randomNumeric(4)); int numFiles = TestCopyFromLocal.initialize(dir); int maxThreads = Runtime.getRuntime().availableProcessors() * 2; - int randThreads = RandomUtils.nextInt(maxThreads); - int numActualThreads = randThreads == 0 ? 1 : randThreads; - String numThreads = Integer.toString(numActualThreads); - run(new TestMultiThreadedCopy(numActualThreads, numFiles), "-t", numThreads, + int randThreads = RandomUtils.nextInt(maxThreads - 1) + 1; + String numThreads = Integer.toString(randThreads); + run(new TestMultiThreadedCopy(randThreads, + randThreads == 1 ? 0 : numFiles), "-t", numThreads, new Path(dir, FROM_DIR_NAME).toString(), new Path(dir, TO_DIR_NAME).toString()); } @@ -144,6 +144,7 @@ public void testCopyFromLocalWithZeroThreads() throws Exception { } private class TestMultiThreadedCopy extends CopyFromLocal { + public static final String NAME = "testCopyFromLocal"; private int expectedThreads; private int expectedCompletedTaskCount; @@ -164,9 +165,9 @@ protected void processArguments(LinkedList args) // 2) There are no active tasks in the executor // 3) Executor has shutdown correctly ThreadPoolExecutor executor = getExecutor(); - Assert.assertEquals(executor.getCompletedTaskCount(), - expectedCompletedTaskCount); - Assert.assertEquals(executor.getActiveCount(), 0); + Assert.assertEquals(expectedCompletedTaskCount, + executor.getCompletedTaskCount()); + Assert.assertEquals(0, executor.getActiveCount()); Assert.assertTrue(executor.isTerminated()); } }