Skip to content

Commit

Permalink
Added null terminator line ending for network target (#3453)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kahath authored and 304NotModified committed Jun 11, 2019
1 parent 05b6faf commit 46847fa
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/NLog/Targets/LineEndingMode.cs
Expand Up @@ -71,6 +71,12 @@ public sealed class LineEndingMode : IEquatable<LineEndingMode>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "Type is immutable")]
public static readonly LineEndingMode LF = new LineEndingMode("LF", "\n");

/// <summary>
/// Insert null terminator (ASCII 0) after each line.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "Type is immutable")]
public static readonly LineEndingMode Null = new LineEndingMode("Null", "\0");

/// <summary>
/// Do not insert any line ending.
/// </summary>
Expand Down Expand Up @@ -122,6 +128,7 @@ public static LineEndingMode FromString([NotNull] string name)
if (name.Equals(LF.Name, StringComparison.OrdinalIgnoreCase)) return LF;
if (name.Equals(CR.Name, StringComparison.OrdinalIgnoreCase)) return CR;
if (name.Equals(Default.Name, StringComparison.OrdinalIgnoreCase)) return Default;
if (name.Equals(Null.Name, StringComparison.OrdinalIgnoreCase)) return Null;
if (name.Equals(None.Name, StringComparison.OrdinalIgnoreCase)) return None;

#if !SILVERLIGHT
Expand Down
13 changes: 13 additions & 0 deletions tests/NLog.UnitTests/Targets/LineEndingModeTests.cs
Expand Up @@ -47,22 +47,27 @@ public void LineEndingModeEqualityTest()
LineEndingMode modeNone = LineEndingMode.None;
LineEndingMode modeLF = LineEndingMode.LF;
LineEndingMode modeCRLF = LineEndingMode.CRLF;
LineEndingMode modeNull = LineEndingMode.Null;

Assert.True(LineEndingMode.Default == modeDefault);
Assert.True(LineEndingMode.None == modeNone);
Assert.True(LineEndingMode.LF == modeLF);
Assert.True(LineEndingMode.Null == modeNull);
Assert.False(LineEndingMode.Default == modeNone);
Assert.False(LineEndingMode.None == modeLF);
Assert.False(LineEndingMode.None == modeCRLF);
Assert.False(LineEndingMode.None == modeNull);
Assert.False(LineEndingMode.None == (object)new { });
Assert.False(LineEndingMode.None == null);

Assert.True(LineEndingMode.Default.Equals(modeDefault));
Assert.True(LineEndingMode.None.Equals(modeNone));
Assert.True(LineEndingMode.LF.Equals(modeLF));
Assert.True(LineEndingMode.Null.Equals(modeNull));
Assert.False(LineEndingMode.Default.Equals(modeNone));
Assert.False(LineEndingMode.None.Equals(modeLF));
Assert.False(LineEndingMode.None.Equals(modeCRLF));
Assert.False(LineEndingMode.None.Equals(modeNull));
Assert.False(LineEndingMode.None.Equals(new { }));
Assert.False(LineEndingMode.None.Equals(null));

Expand All @@ -86,14 +91,17 @@ public void LineEndingModeInequalityTest()
LineEndingMode modeNone = LineEndingMode.None;
LineEndingMode modeLF = LineEndingMode.LF;
LineEndingMode modeCRLF = LineEndingMode.CRLF;
LineEndingMode modeNull = LineEndingMode.Null;

Assert.True(LineEndingMode.Default != modeNone);
Assert.True(LineEndingMode.None != modeLF);
Assert.True(LineEndingMode.None != modeCRLF);
Assert.True(LineEndingMode.None != modeNull);
Assert.False(LineEndingMode.Default != modeDefault);
Assert.False(LineEndingMode.None != modeNone);
Assert.False(LineEndingMode.LF != modeLF);
Assert.False(LineEndingMode.CRLF != modeCRLF);
Assert.False(LineEndingMode.Null != modeNull);

Assert.True(null != LineEndingMode.LF);
Assert.True(null != modeLF);
Expand All @@ -103,6 +111,10 @@ public void LineEndingModeInequalityTest()
Assert.True(null != modeCRLF);
Assert.True(LineEndingMode.CRLF != null);
Assert.True(modeCRLF != null);
Assert.True(null != LineEndingMode.Null);
Assert.True(null != modeNull);
Assert.True(LineEndingMode.Null != null);
Assert.True(modeNull != null);

// Handle running tests on different operating systems
if (modeCRLF.NewLineCharacters == Environment.NewLine)
Expand Down Expand Up @@ -139,6 +151,7 @@ public void LineEndingModeToStringTest()
Assert.Equal("CRLF", LineEndingMode.CRLF.ToString());
Assert.Equal("CR", LineEndingMode.CR.ToString());
Assert.Equal("LF", LineEndingMode.LF.ToString());
Assert.Equal("Null", LineEndingMode.Null.ToString());
}
}
}

0 comments on commit 46847fa

Please sign in to comment.