HDFS-9362. TestAuditLogger#testAuditLoggerWithCallContext assumes Unix line endings, fails on Windows. Contributed by Chris Nauroth.
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 1729b73..fbf211f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -2222,6 +2222,9 @@
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 252f7af..d637abc 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 @@
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 @@
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 @@
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 @@
} 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 @@
// 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 @@
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 @@
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 @@
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 @@
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