Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id EC6A1200CDF for ; Thu, 17 Aug 2017 20:19:37 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id E7EE416B6F3; Thu, 17 Aug 2017 18:19:37 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 1432B16B6F2 for ; Thu, 17 Aug 2017 20:19:36 +0200 (CEST) Received: (qmail 45683 invoked by uid 500); 17 Aug 2017 18:19:35 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 45672 invoked by uid 99); 17 Aug 2017 18:19:35 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Aug 2017 18:19:35 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3ACABE9686; Thu, 17 Aug 2017 18:19:33 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: wangda@apache.org To: common-commits@hadoop.apache.org Message-Id: <9b3b2697e5ca4757ac0a80455c7ec1b9@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: hadoop git commit: YARN-7042. Clean up unit tests after YARN-6610. (Daniel Templeton via wangda) Date: Thu, 17 Aug 2017 18:19:33 +0000 (UTC) archived-at: Thu, 17 Aug 2017 18:19:38 -0000 Repository: hadoop Updated Branches: refs/heads/YARN-3926 efc1d315f -> 42d5f4b26 YARN-7042. Clean up unit tests after YARN-6610. (Daniel Templeton via wangda) Change-Id: I8e40f704b6fcdd5b14faa9548a27986501044fa1 Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/42d5f4b2 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/42d5f4b2 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/42d5f4b2 Branch: refs/heads/YARN-3926 Commit: 42d5f4b266256450566bff7b60e38166f8589273 Parents: efc1d31 Author: Wangda Tan Authored: Thu Aug 17 11:18:08 2017 -0700 Committer: Wangda Tan Committed: Thu Aug 17 11:18:08 2017 -0700 ---------------------------------------------------------------------- .../resource/DominantResourceCalculator.java | 2 +- .../util/resource/TestResourceCalculator.java | 95 ++++++++++---------- 2 files changed, 49 insertions(+), 48 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/42d5f4b2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.java index 40b38b9..1e99bc7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.java @@ -126,7 +126,7 @@ public class DominantResourceCalculator extends ResourceCalculator { diff = max[0] - max[1]; } else if (clusterRes.length == 2) { // Special case to handle the common scenario of only CPU and memory - // so the we can optimize for performance + // so that we can optimize for performance diff = calculateSharesForMandatoryResources(clusterRes, lhs, rhs, lhsShares, rhsShares); } else { http://git-wip-us.apache.org/repos/asf/hadoop/blob/42d5f4b2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/resource/TestResourceCalculator.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/resource/TestResourceCalculator.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/resource/TestResourceCalculator.java index 19e7f8d..5b4155c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/resource/TestResourceCalculator.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/util/resource/TestResourceCalculator.java @@ -24,7 +24,7 @@ import java.util.Collection; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.yarn.api.records.Resource; import org.apache.hadoop.yarn.conf.YarnConfiguration; -import org.junit.BeforeClass; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -44,13 +44,18 @@ public class TestResourceCalculator { { new DominantResourceCalculator() } }); } - @BeforeClass - public static void setup() { + @Before + public void setupNoExtraResource() { + // This has to run before each test because we don't know when + // setupExtraResource() might be called + ResourceUtils.resetResourceTypes(new Configuration()); + } + + private static void setupExtraResource() { Configuration conf = new Configuration(); conf.set(YarnConfiguration.RESOURCE_TYPES, "test"); ResourceUtils.resetResourceTypes(conf); - ResourceUtils.getResourceTypes(); } public TestResourceCalculator(ResourceCalculator rs) { @@ -86,9 +91,15 @@ public class TestResourceCalculator { } } - private Resource newResource(long memory, int cpu, int test) { + private Resource newResource(long memory, int cpu) { Resource res = Resource.newInstance(memory, cpu); + return res; + } + + private Resource newResource(long memory, int cpu, int test) { + Resource res = newResource(memory, cpu); + res.setResourceValue("test", test); return res; @@ -123,28 +134,48 @@ public class TestResourceCalculator { } @Test - public void testCompare2() { + public void testCompareWithOnlyMandatory() { + // This test is necessary because there are optimizations that are only + // triggered when only the mandatory resources are configured. + // Keep cluster resources even so that the numbers are easy to understand - Resource cluster = Resource.newInstance(4, 4); + Resource cluster = newResource(4, 4); - assertComparison(cluster, Resource.newInstance(1, 1), - Resource.newInstance(1, 1), 0); - assertComparison(cluster, Resource.newInstance(0, 0), - Resource.newInstance(0, 0), 0); - assertComparison(cluster, Resource.newInstance(2, 2), - Resource.newInstance(1, 1), 1); - assertComparison(cluster, Resource.newInstance(2, 2), - Resource.newInstance(0, 0), 1); + assertComparison(cluster, newResource(1, 1), newResource(1, 1), 0); + assertComparison(cluster, newResource(0, 0), newResource(0, 0), 0); + assertComparison(cluster, newResource(2, 2), newResource(1, 1), 1); + assertComparison(cluster, newResource(2, 2), newResource(0, 0), 1); if (resourceCalculator instanceof DefaultResourceCalculator) { - testCompareDefault2(cluster); + testCompareDefaultWithOnlyMandatory(cluster); } else if (resourceCalculator instanceof DominantResourceCalculator) { - testCompareDominant2(cluster); + testCompareDominantWithOnlyMandatory(cluster); } } + private void testCompareDefaultWithOnlyMandatory(Resource cluster) { + assertComparison(cluster, newResource(1, 1), newResource(1, 1), 0); + assertComparison(cluster, newResource(1, 2), newResource(1, 1), 0); + assertComparison(cluster, newResource(1, 1), newResource(1, 0), 0); + assertComparison(cluster, newResource(2, 1), newResource(1, 1), 1); + assertComparison(cluster, newResource(2, 1), newResource(1, 2), 1); + assertComparison(cluster, newResource(2, 1), newResource(1, 0), 1); + } + + private void testCompareDominantWithOnlyMandatory(Resource cluster) { + assertComparison(cluster, newResource(2, 1), newResource(2, 1), 0); + assertComparison(cluster, newResource(2, 1), newResource(1, 2), 0); + assertComparison(cluster, newResource(2, 1), newResource(1, 1), 1); + assertComparison(cluster, newResource(2, 2), newResource(2, 1), 1); + assertComparison(cluster, newResource(2, 2), newResource(1, 2), 1); + assertComparison(cluster, newResource(3, 1), newResource(3, 0), 1); + } + @Test public void testCompare() { + // Test with 3 resources + setupExtraResource(); + // Keep cluster resources even so that the numbers are easy to understand Resource cluster = newResource(4L, 4, 4); @@ -160,36 +191,6 @@ public class TestResourceCalculator { } } - private void testCompareDefault2(Resource cluster) { - assertComparison(cluster, Resource.newInstance(1, 1), - Resource.newInstance(1, 1), 0); - assertComparison(cluster, Resource.newInstance(1, 2), - Resource.newInstance(1, 1), 0); - assertComparison(cluster, Resource.newInstance(1, 1), - Resource.newInstance(1, 0), 0); - assertComparison(cluster, Resource.newInstance(2, 1), - Resource.newInstance(1, 1), 1); - assertComparison(cluster, Resource.newInstance(2, 1), - Resource.newInstance(1, 2), 1); - assertComparison(cluster, Resource.newInstance(2, 1), - Resource.newInstance(1, 0), 1); - } - - private void testCompareDominant2(Resource cluster) { - assertComparison(cluster, Resource.newInstance(2, 1), - Resource.newInstance(2, 1), 0); - assertComparison(cluster, Resource.newInstance(2, 1), - Resource.newInstance(1, 2), 0); - assertComparison(cluster, Resource.newInstance(2, 1), - Resource.newInstance(1, 1), 1); - assertComparison(cluster, Resource.newInstance(2, 2), - Resource.newInstance(2, 1), 1); - assertComparison(cluster, Resource.newInstance(2, 2), - Resource.newInstance(1, 2), 1); - assertComparison(cluster, Resource.newInstance(3, 1), - Resource.newInstance(3, 0), 1); - } - private void testCompareDefault(Resource cluster) { assertComparison(cluster, newResource(1, 1, 2), newResource(1, 1, 1), 0); assertComparison(cluster, newResource(1, 2, 1), newResource(1, 1, 1), 0); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org For additional commands, e-mail: common-commits-help@hadoop.apache.org