diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ParameterizedSchedulerTestBase.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ParameterizedSchedulerTestBase.java index 3f2bfc9..cef9862 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ParameterizedSchedulerTestBase.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/ParameterizedSchedulerTestBase.java @@ -19,6 +19,7 @@ package org.apache.hadoop.yarn.server.resourcemanager; import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairSchedulerConfiguration; @@ -38,6 +39,7 @@ private SchedulerType schedulerType; private YarnConfiguration conf = null; + private AbstractYarnScheduler scheduler = null; public enum SchedulerType { CAPACITY, FAIR @@ -58,8 +60,11 @@ public void configureScheduler() throws IOException, ClassNotFoundException { if (schedulerClass == FairScheduler.class) { schedulerType = SchedulerType.FAIR; configureFairScheduler(conf); + scheduler = new FairScheduler(); } else if (schedulerClass == CapacityScheduler.class) { schedulerType = SchedulerType.CAPACITY; + scheduler = new CapacityScheduler(); + ((CapacityScheduler)scheduler).setConf(conf); } } @@ -87,4 +92,15 @@ private void configureFairScheduler(YarnConfiguration conf) throws IOException { public SchedulerType getSchedulerType() { return schedulerType; } + + /** + * A scheduler is configured automatically by + * {@link ParameterizedSchedulerTestBase}. Client test code can obtain + * the scheduler with this getter method. + * @return The scheduler configured by + * {@code YarnConfiguration.RM_SCHEDULER} + */ + public AbstractYarnScheduler getScheduler() { + return scheduler; + } } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resourcetracker/TestNMReconnect.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resourcetracker/TestNMReconnect.java index dce3d06..0b9577a 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resourcetracker/TestNMReconnect.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/resourcetracker/TestNMReconnect.java @@ -25,6 +25,7 @@ import org.apache.hadoop.yarn.event.DrainDispatcher; import org.apache.hadoop.yarn.server.resourcemanager.MockNM; import org.apache.hadoop.yarn.server.resourcemanager.MockRM; +import org.apache.hadoop.yarn.server.resourcemanager.ParameterizedSchedulerTestBase; import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode; import org.junit.Assert; import org.apache.hadoop.conf.Configuration; @@ -58,7 +59,12 @@ import org.junit.Before; import org.junit.Test; -public class TestNMReconnect { +/** + * TestNMReconnect run tests against the scheduler set by + * {@link ParameterizedSchedulerTestBase} which is configured + * in {@link YarnConfiguration}. + */ +public class TestNMReconnect extends ParameterizedSchedulerTestBase { private static final RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null); @@ -148,9 +154,8 @@ public void testReconnect() throws Exception { @Test public void testCompareRMNodeAfterReconnect() throws Exception { + AbstractYarnScheduler scheduler = getScheduler(); Configuration yarnConf = new YarnConfiguration(); - CapacityScheduler scheduler = new CapacityScheduler(); - scheduler.setConf(yarnConf); ConfigurationProvider configurationProvider = ConfigurationProviderFactory.getConfigurationProvider(yarnConf); configurationProvider.init(yarnConf);