diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java index 8320d8222fa..d2fd1285c70 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacitySchedulerAutoCreatedQueueBase.java @@ -751,23 +751,18 @@ protected void validateEffectiveMinResource(ResourceManager rm, * parentQueue.getQueueCapacities().getAbsoluteCapacity(label)); assertEquals(effMinCapacity, Resources.multiply(resourceByLabel, leafQueue.getQueueCapacities().getAbsoluteCapacity(label))); - // TODO: Wangda, I think this is a wrong test, it doesn't consider rounding - // loss of multiplication, the right value should be <10240, 2>, but the - // test expects <10240, 1> - // fixme, address this in the future patch (auto queue creation). -// if (expectedQueueEntitlements.get(label).getCapacity() > EPSILON) { -// assertEquals(Resource.newInstance(10 * GB, 2), -// leafQueue.getEffectiveCapacity(label)); -// } else { -// assertEquals(Resource.newInstance(0, 0), -// leafQueue.getEffectiveCapacity(label)); -// } - - if (leafQueue.getQueueCapacities().getAbsoluteCapacity(label) > 0) { - assertTrue(Resources.greaterThan(cs.getResourceCalculator(), - cs.getClusterResource(), effMinCapacity, Resources.none())); + + // When in absolute mode. + // We can only assertEquals in memory size, because the cap/absolute + // is caculated by memory, we can only make sure this. + if (leafQueue.getCapacityConfigType() == + AbstractCSQueue.CapacityConfigType.ABSOLUTE_RESOURCE) { + assertEquals(effMinCapacity.getMemorySize(), + leafQueue.getEffectiveCapacity(label).getMemorySize()); + assertTrue(effMinCapacity.getVirtualCores() + <= leafQueue.getEffectiveCapacity(label).getVirtualCores()); } else { - assertTrue(Resources.equals(effMinCapacity, Resources.none())); + assertEquals(effMinCapacity, leafQueue.getEffectiveCapacity(label)); } }