diff --git a/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/OutputTextLineParser.cs b/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/OutputTextLineParser.cs index 861de5897e..2a4f202121 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/OutputTextLineParser.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/OutputTextLineParser.cs @@ -76,7 +76,7 @@ namespace ICSharpCode.SharpDevelop.Gui RegexOptions regexOptions = multiline ? RegexOptions.Multiline : RegexOptions.None; if (lineText != null) { - Match match = Regex.Match(lineText, @"^.*?\sin\s(.*?):line\s(\d*)?$", regexOptions); + Match match = Regex.Match(lineText, @"^.*?\sin\s(.*?):line\s(\d*)?\r?$", regexOptions); if (match.Success) { try { diff --git a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj index 647e94568d..779f58d2c9 100644 --- a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj +++ b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj @@ -67,6 +67,7 @@ + diff --git a/src/Main/Base/Test/OutputTextLineParserTestFixture.cs b/src/Main/Base/Test/OutputTextLineParserTestFixture.cs new file mode 100644 index 0000000000..859199d081 --- /dev/null +++ b/src/Main/Base/Test/OutputTextLineParserTestFixture.cs @@ -0,0 +1,38 @@ +// +// +// +// +// $Revision$ +// + +using ICSharpCode.SharpDevelop.Gui; +using NUnit.Framework; +using System; + +namespace ICSharpCode.SharpDevelop.Tests +{ + [TestFixture] + public class NUnitOutputParserTestFixture + { + [Test] + public void Multiline() + { + string output = " at NunitFoo.Tests.FooTest.Foo() in c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs:line 22\n"; + FileLineReference lineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(output, true); + Assert.AreEqual(lineRef.FileName, "c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs"); + Assert.AreEqual(21, lineRef.Line); + Assert.AreEqual(0, lineRef.Column); + } + + [Test] + public void MultilineWithCarriageReturn() + { + string output = " at NunitFoo.Tests.FooTest.Foo() in c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs:line 22\r\n"; + FileLineReference lineRef = OutputTextLineParser.GetNUnitOutputFileLineReference(output, true); + Assert.AreEqual(lineRef.FileName, "c:\\test\\NunitFoo\\NunitFoo.Tests\\FooTest.cs"); + Assert.AreEqual(21, lineRef.Line); + Assert.AreEqual(0, lineRef.Column); + } + + } +}