1/*2 * Licensed to the Apache Software Foundation (ASF) under one3 * or more contributor license agreements. See the NOTICE file4 * distributed with this work for additional information5 * regarding copyright ownership. The ASF licenses this file6 * to you under the Apache License, Version 2.0 (the7 * "License"); you may not use this file except in compliance8 * with the License. You may obtain a copy of the License at9 *10 * http://www.apache.org/licenses/LICENSE-2.011 *12 * Unless required by applicable law or agreed to in writing, software13 * distributed under the License is distributed on an "AS IS" BASIS,14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15 * See the License for the specific language governing permissions and16 * limitations under the License.17 */1819package org.apache.giraph;
2021import org.apache.giraph.conf.GiraphConfiguration;
22import org.apache.giraph.examples.SimpleCheckpoint;
23import org.apache.giraph.examples.SimpleSuperstepComputation.SimpleSuperstepVertexInputFormat;
24import org.apache.giraph.examples.SimpleSuperstepComputation.SimpleSuperstepVertexOutputFormat;
25import org.apache.giraph.job.GiraphJob;
26import org.apache.hadoop.fs.Path;
27import org.junit.Test;
2829import java.io.IOException;
3031importstatic org.junit.Assert.assertFalse;
3233/**34 * Unit test for not enough map tasks35 */36publicclassTestNotEnoughMapTasksextendsBspCase {
3738publicTestNotEnoughMapTasks() {
39super(TestNotEnoughMapTasks.class.getName());
40 }
4142/**43 * This job should always fail gracefully with not enough map tasks.44 *45 * @throws IOException46 * @throws ClassNotFoundException47 * @throws InterruptedException48 */49 @Test
50publicvoid testNotEnoughMapTasks()
51throws IOException, InterruptedException, ClassNotFoundException {
52if (!runningInDistributedMode()) {
53 System.out.println(
54"testNotEnoughMapTasks: Ignore this test in local mode.");
55return;
56 }
57 Path outputPath = getTempPath(getCallingMethodName());
58 GiraphConfiguration conf = new GiraphConfiguration();
59 conf.setComputationClass(
60 SimpleCheckpoint.SimpleCheckpointComputation.class);
61 conf.setVertexInputFormatClass(SimpleSuperstepVertexInputFormat.class);
62 conf.setVertexOutputFormatClass(SimpleSuperstepVertexOutputFormat.class);
63 GiraphJob job = prepareJob(getCallingMethodName(), conf, outputPath);
6465// An unlikely impossible number of workers to achieve66finalint unlikelyWorkers = Short.MAX_VALUE;
67 job.getConfiguration().setWorkerConfiguration(unlikelyWorkers,
68 unlikelyWorkers,
69 100.0f);
70// Only one poll attempt of one second to make failure faster71 job.getConfiguration().setMaxMasterSuperstepWaitMsecs(1000);
72 job.getConfiguration().setEventWaitMsecs(1000);
73 assertFalse(job.run(false));
74 }
75 }