Quellcode durchsuchen

Tests in mapreduce-client-app are writing outside of target. Contributed by Akira AJISAKA.
(cherry picked from commit 15d577bfbb3f18fc95251d22378b53aa4210115f)

Junping Du vor 9 Jahren
Ursprung
Commit
628c782870

+ 3 - 0
hadoop-mapreduce-project/CHANGES.txt

@@ -355,6 +355,9 @@ Release 2.8.0 - UNRELEASED
     MAPREDUCE-6553. Replace '\u2b05' with '<-' in rendering job configuration.
     (Gabor Liptak via aajisaka)
 
+    MAPREDUCE-6557. Tests in mapreduce-client-app are writing outside of
+    target. (Akira AJISAKA via junping_du)
+
 Release 2.7.3 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 16 - 8
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRAppMaster.java

@@ -87,6 +87,7 @@ import org.apache.hadoop.yarn.util.ConverterUtils;
 import org.apache.log4j.Level;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
+import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -95,11 +96,13 @@ import org.mockito.Mockito;
 
 public class TestMRAppMaster {
   private static final Log LOG = LogFactory.getLog(TestMRAppMaster.class);
-  static String stagingDir = "staging/";
+  private static final Path TEST_ROOT_DIR =
+      new Path(System.getProperty("test.build.data", "target/test-dir"));
+  private static final Path testDir = new Path(TEST_ROOT_DIR,
+      TestMRAppMaster.class.getName() + "-tmpDir");
+  static String stagingDir = new Path(testDir, "staging").toString();
   private static FileContext localFS = null;
-  private static final File testDir = new File("target",
-    TestMRAppMaster.class.getName() + "-tmpDir").getAbsoluteFile();
-  
+
   @BeforeClass
   public static void setup() throws AccessControlException,
       FileNotFoundException, IllegalArgumentException, IOException {
@@ -108,12 +111,12 @@ public class TestMRAppMaster {
     File dir = new File(stagingDir);
     stagingDir = dir.getAbsolutePath();
     localFS = FileContext.getLocalFSFileContext();
-    localFS.delete(new Path(testDir.getAbsolutePath()), true);
-    testDir.mkdir();
+    localFS.delete(testDir, true);
+    new File(testDir.toString()).mkdir();
   }
   
   @Before
-  public void cleanup() throws IOException {
+  public void prepare() throws IOException {
     File dir = new File(stagingDir);
     if(dir.exists()) {
       FileUtils.deleteDirectory(dir);
@@ -121,6 +124,11 @@ public class TestMRAppMaster {
     dir.mkdirs();
   }
 
+  @AfterClass
+  public static void cleanup() throws IOException {
+    localFS.delete(testDir, true);
+  }
+
   @Test
   public void testMRAppMasterForDifferentUser() throws IOException,
       InterruptedException {
@@ -425,7 +433,7 @@ public class TestMRAppMaster {
 
     JobConf conf = new JobConf();
 
-    Path tokenFilePath = new Path(testDir.getAbsolutePath(), "tokens-file");
+    Path tokenFilePath = new Path(testDir, "tokens-file");
     Map<String, String> newEnv = new HashMap<String, String>();
     newEnv.put(UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION, tokenFilePath
       .toUri().getPath());