From 2a59d01503ed547bac15443fc273b5e04a2839d9 Mon Sep 17 00:00:00 2001 From: Akira Ajisaka Date: Wed, 30 Dec 2015 01:33:47 +0900 Subject: [PATCH] MAPREDUCE-6589. TestTaskLog outputs a log under directory other than target/test-dir. (aajisaka) --- hadoop-mapreduce-project/CHANGES.txt | 3 +++ .../org/apache/hadoop/mapred/TestTaskLog.java | 22 ++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 689cd1b9df..d6f713f25d 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -680,6 +680,9 @@ Release 2.8.0 - UNRELEASED MAPREDUCE-6419. JobHistoryServer doesn't sort properly based on Job ID when Job id's exceed 9999. (Mohammad Shahid Khan via rohithsharmaks) + MAPREDUCE-6589. TestTaskLog outputs a log under directory other than + target/test-dir. (aajisaka) + Release 2.7.3 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestTaskLog.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestTaskLog.java index ab4a342dfb..ee3bd81e9b 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestTaskLog.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/TestTaskLog.java @@ -27,9 +27,10 @@ import java.io.InputStream; import org.apache.commons.io.FileUtils; +import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.mapred.TaskLog.LogName; -import org.apache.hadoop.mapreduce.MRJobConfig; import org.apache.hadoop.yarn.conf.YarnConfiguration; +import org.junit.AfterClass; import org.junit.Test; /** @@ -37,6 +38,16 @@ */ public class TestTaskLog { + private static final String testDirName = TestTaskLog.class.getSimpleName(); + private static final String testDir = System.getProperty("test.build.data", + "target" + File.separatorChar + "test-dir") + + File.separatorChar + testDirName; + + @AfterClass + public static void cleanup() { + FileUtil.fullyDelete(new File(testDir)); + } + /** * test TaskAttemptID * @@ -67,7 +78,7 @@ public void testTaskLog() throws IOException { indexFile.delete(); indexFile.createNewFile(); - TaskLog.syncLogs("location", taid, true); + TaskLog.syncLogs(testDir, taid, true); assertTrue(indexFile.getAbsolutePath().endsWith( "userlogs" + File.separatorChar + "job_job_0001" @@ -76,7 +87,7 @@ public void testTaskLog() throws IOException { f = TaskLog.getRealTaskLogFileLocation(taid, true, LogName.DEBUGOUT); if (f != null) { - assertTrue(f.getAbsolutePath().endsWith("location" + assertTrue(f.getAbsolutePath().endsWith(testDirName + File.separatorChar + "debugout")); FileUtils.copyFile(indexFile, f); } @@ -84,14 +95,13 @@ public void testTaskLog() throws IOException { assertTrue(TaskLog.obtainLogDirOwner(taid).length() > 0); // test TaskLog.Reader assertTrue(readTaskLog(TaskLog.LogName.DEBUGOUT, taid, true).length() > 0); - } - public String readTaskLog(TaskLog.LogName filter, + private String readTaskLog(TaskLog.LogName filter, org.apache.hadoop.mapred.TaskAttemptID taskId, boolean isCleanup) throws IOException { // string buffer to store task log - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); int res; // reads the whole tasklog into inputstream