TestInputPath.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:4k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * 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 and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.mapred;
  19. import junit.framework.TestCase;
  20. import org.apache.hadoop.fs.Path;
  21. import org.apache.hadoop.mapred.FileInputFormat;
  22. import org.apache.hadoop.mapred.JobConf;
  23. import org.apache.hadoop.util.StringUtils;
  24. public class TestInputPath extends TestCase {
  25.   public void testInputPath() throws Exception {
  26.     JobConf jobConf = new JobConf();
  27.     Path workingDir = jobConf.getWorkingDirectory();
  28.     
  29.     Path path = new Path(workingDir, 
  30.         "xx{y"+StringUtils.COMMA_STR+"z}");
  31.     FileInputFormat.setInputPaths(jobConf, path);
  32.     Path[] paths = FileInputFormat.getInputPaths(jobConf);
  33.     assertEquals(1, paths.length);
  34.     assertEquals(path.toString(), paths[0].toString());
  35.     
  36.     StringBuilder pathStr = new StringBuilder();
  37.     pathStr.append(StringUtils.ESCAPE_CHAR);
  38.     pathStr.append(StringUtils.ESCAPE_CHAR);
  39.     pathStr.append(StringUtils.COMMA);
  40.     pathStr.append(StringUtils.COMMA);
  41.     pathStr.append('a');
  42.     path = new Path(workingDir, pathStr.toString());
  43.     FileInputFormat.setInputPaths(jobConf, path);
  44.     paths = FileInputFormat.getInputPaths(jobConf);
  45.     assertEquals(1, paths.length);
  46.     assertEquals(path.toString(), paths[0].toString());
  47.     
  48.     pathStr.setLength(0);
  49.     pathStr.append(StringUtils.ESCAPE_CHAR);
  50.     pathStr.append("xx");
  51.     pathStr.append(StringUtils.ESCAPE_CHAR);
  52.     path = new Path(workingDir, pathStr.toString());
  53.     Path path1 = new Path(workingDir,
  54.         "yy"+StringUtils.COMMA_STR+"zz");
  55.     FileInputFormat.setInputPaths(jobConf, path);
  56.     FileInputFormat.addInputPath(jobConf, path1);
  57.     paths = FileInputFormat.getInputPaths(jobConf);
  58.     assertEquals(2, paths.length);
  59.     assertEquals(path.toString(), paths[0].toString());
  60.     assertEquals(path1.toString(), paths[1].toString());
  61.     FileInputFormat.setInputPaths(jobConf, path, path1);
  62.     paths = FileInputFormat.getInputPaths(jobConf);
  63.     assertEquals(2, paths.length);
  64.     assertEquals(path.toString(), paths[0].toString());
  65.     assertEquals(path1.toString(), paths[1].toString());
  66.     Path[] input = new Path[] {path, path1};
  67.     FileInputFormat.setInputPaths(jobConf, input);
  68.     paths = FileInputFormat.getInputPaths(jobConf);
  69.     assertEquals(2, paths.length);
  70.     assertEquals(path.toString(), paths[0].toString());
  71.     assertEquals(path1.toString(), paths[1].toString());
  72.     
  73.     pathStr.setLength(0);
  74.     String str1 = "{a{b,c},de}";
  75.     String str2 = "xyz";
  76.     String str3 = "x{y,z}";
  77.     pathStr.append(str1);
  78.     pathStr.append(StringUtils.COMMA);
  79.     pathStr.append(str2);
  80.     pathStr.append(StringUtils.COMMA);
  81.     pathStr.append(str3);
  82.     FileInputFormat.setInputPaths(jobConf, pathStr.toString());
  83.     paths = FileInputFormat.getInputPaths(jobConf);
  84.     assertEquals(3, paths.length);
  85.     assertEquals(new Path(workingDir, str1).toString(), paths[0].toString());
  86.     assertEquals(new Path(workingDir, str2).toString(), paths[1].toString());
  87.     assertEquals(new Path(workingDir, str3).toString(), paths[2].toString());
  88.     pathStr.setLength(0);
  89.     String str4 = "abc";
  90.     String str5 = "pq{r,s}";
  91.     pathStr.append(str4);
  92.     pathStr.append(StringUtils.COMMA);
  93.     pathStr.append(str5);
  94.     FileInputFormat.addInputPaths(jobConf, pathStr.toString());
  95.     paths = FileInputFormat.getInputPaths(jobConf);
  96.     assertEquals(5, paths.length);
  97.     assertEquals(new Path(workingDir, str1).toString(), paths[0].toString());
  98.     assertEquals(new Path(workingDir, str2).toString(), paths[1].toString());
  99.     assertEquals(new Path(workingDir, str3).toString(), paths[2].toString());
  100.     assertEquals(new Path(workingDir, str4).toString(), paths[3].toString());
  101.     assertEquals(new Path(workingDir, str5).toString(), paths[4].toString());
  102.   }
  103. }