diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 26a07761b6e..c6e80e7b47a 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -647,6 +647,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 diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRAppMaster.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRAppMaster.java index 86fa33eec0e..51164916d10 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestMRAppMaster.java +++ b/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 { @@ -427,7 +435,7 @@ public class TestMRAppMaster { JobConf conf = new JobConf(); - Path tokenFilePath = new Path(testDir.getAbsolutePath(), "tokens-file"); + Path tokenFilePath = new Path(testDir, "tokens-file"); Map newEnv = new HashMap(); newEnv.put(UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION, tokenFilePath .toUri().getPath());