From 628c782870c5c1e6fd5f89e342ae1a2d74b2338d Mon Sep 17 00:00:00 2001 From: Junping Du Date: Wed, 25 Nov 2015 09:15:26 -0800 Subject: [PATCH] Tests in mapreduce-client-app are writing outside of target. Contributed by Akira AJISAKA. (cherry picked from commit 15d577bfbb3f18fc95251d22378b53aa4210115f) --- hadoop-mapreduce-project/CHANGES.txt | 3 +++ .../mapreduce/v2/app/TestMRAppMaster.java | 24 ++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 8046e8855dd..19991264e2b 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/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 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 9e0dafcbed7..78a6178bc6b 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 { @@ -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 newEnv = new HashMap(); newEnv.put(UserGroupInformation.HADOOP_TOKEN_FILE_LOCATION, tokenFilePath .toUri().getPath());