From 246ab44b5e7bb40bb7d840fc647e4a3725579f0c Mon Sep 17 00:00:00 2001 From: cnauroth Date: Tue, 3 Nov 2015 11:54:57 -0800 Subject: [PATCH] HDFS-9362. TestAuditLogger#testAuditLoggerWithCallContext assumes Unix line endings, fails on Windows. Contributed by Chris Nauroth. (cherry picked from commit 7e2829662b4c4bf33ebaf2fa09312d0bed3d6f92) --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../hdfs/server/namenode/TestAuditLogger.java | 24 ++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 6d2b2264eca..b67f340a5f0 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1379,6 +1379,9 @@ Release 2.8.0 - UNRELEASED HDFS-9354. Fix TestBalancer#testBalancerWithZeroThreadsForMove on Windows. (Xiaoyu Yao via cnauroth) + HDFS-9362. TestAuditLogger#testAuditLoggerWithCallContext assumes Unix line + endings, fails on Windows. (cnauroth) + Release 2.7.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestAuditLogger.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestAuditLogger.java index 252f7afe0ed..d637abc3e3f 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestAuditLogger.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestAuditLogger.java @@ -243,7 +243,8 @@ public class TestAuditLogger { CallerContext.setCurrent(context); LOG.info("Set current caller context as {}", CallerContext.getCurrent()); fs.setTimes(p, time, time); - assertTrue(auditlog.getOutput().endsWith("callerContext=setTimes\n")); + assertTrue(auditlog.getOutput().endsWith( + String.format("callerContext=setTimes%n"))); auditlog.clearOutput(); // context with signature @@ -254,7 +255,7 @@ public class TestAuditLogger { LOG.info("Set current caller context as {}", CallerContext.getCurrent()); fs.setTimes(p, time, time); assertTrue(auditlog.getOutput().endsWith( - "callerContext=setTimes:L\n")); + String.format("callerContext=setTimes:L%n"))); auditlog.clearOutput(); // long context is truncated @@ -266,7 +267,7 @@ public class TestAuditLogger { LOG.info("Set current caller context as {}", CallerContext.getCurrent()); fs.setTimes(p, time, time); assertTrue(auditlog.getOutput().endsWith( - "callerContext=" + longContext.substring(0, 128) + ":L\n")); + String.format("callerContext=%s:L%n", longContext.substring(0, 128)))); auditlog.clearOutput(); // empty context is ignored @@ -302,7 +303,8 @@ public class TestAuditLogger { } catch (InterruptedException ignored) { // Ignore } - assertTrue(auditlog.getOutput().endsWith("callerContext=setTimes:L\n")); + assertTrue(auditlog.getOutput().endsWith( + String.format("callerContext=setTimes:L%n"))); auditlog.clearOutput(); // caller context is overridden in child thread @@ -330,7 +332,7 @@ public class TestAuditLogger { // Ignore } assertTrue(auditlog.getOutput().endsWith( - "callerContext=setPermission:L\n")); + String.format("callerContext=setPermission:L%n"))); auditlog.clearOutput(); // reuse the current context's signature @@ -339,7 +341,8 @@ public class TestAuditLogger { CallerContext.setCurrent(context); LOG.info("Set current caller context as {}", CallerContext.getCurrent()); fs.mkdirs(new Path("/reuse-context-signature")); - assertTrue(auditlog.getOutput().endsWith("callerContext=mkdirs:L\n")); + assertTrue(auditlog.getOutput().endsWith( + String.format("callerContext=mkdirs:L%n"))); auditlog.clearOutput(); // too long signature is ignored @@ -349,7 +352,8 @@ public class TestAuditLogger { CallerContext.setCurrent(context); LOG.info("Set current caller context as {}", CallerContext.getCurrent()); fs.setTimes(p, time, time); - assertTrue(auditlog.getOutput().endsWith("callerContext=setTimes\n")); + assertTrue(auditlog.getOutput().endsWith( + String.format("callerContext=setTimes%n"))); auditlog.clearOutput(); // null signature is ignored @@ -358,7 +362,8 @@ public class TestAuditLogger { CallerContext.setCurrent(context); LOG.info("Set current caller context as {}", CallerContext.getCurrent()); fs.setTimes(p, time, time); - assertTrue(auditlog.getOutput().endsWith("callerContext=setTimes\n")); + assertTrue(auditlog.getOutput().endsWith( + String.format("callerContext=setTimes%n"))); auditlog.clearOutput(); // empty signature is ignored @@ -368,7 +373,8 @@ public class TestAuditLogger { CallerContext.setCurrent(context); LOG.info("Set current caller context as {}", CallerContext.getCurrent()); fs.mkdirs(new Path("/empty-signature")); - assertTrue(auditlog.getOutput().endsWith("callerContext=mkdirs\n")); + assertTrue(auditlog.getOutput().endsWith( + String.format("callerContext=mkdirs%n"))); auditlog.clearOutput(); // invalid context is not passed to the rpc