[msbuild] Fix parsing of json parser errors to handle trailing periods in the error message.
Fixes this test: 1) Test Failure : Xamarin.iOS.Tasks.Bug60536.TestACToolTaskCatchesJsonException ColumnNumber Expected: 2 But was: 0
This commit is contained in:
Родитель
9946fbd4dd
Коммит
fc561b247c
|
@ -390,12 +390,15 @@ namespace Xamarin.MacDev.Tasks
|
|||
int line = 0, column = 0;
|
||||
int index, endIndex;
|
||||
|
||||
if ((index = ex.Message.IndexOf ("At line ", StringComparison.Ordinal)) != -1) {
|
||||
var message = ex.Message;
|
||||
if (message.EndsWith (".", StringComparison.Ordinal))
|
||||
message = message.Substring (0, message.Length - 1);
|
||||
if ((index = message.IndexOf ("At line ", StringComparison.Ordinal)) != -1) {
|
||||
index += "At line ".Length;
|
||||
|
||||
if ((endIndex = ex.Message.IndexOf (", column ", index, StringComparison.Ordinal)) != -1) {
|
||||
var columnBuf = ex.Message.Substring (endIndex + ", column ".Length);
|
||||
var lineBuf = ex.Message.Substring (index, endIndex - index);
|
||||
if ((endIndex = message.IndexOf (", column ", index, StringComparison.Ordinal)) != -1) {
|
||||
var columnBuf = message.Substring (endIndex + ", column ".Length);
|
||||
var lineBuf = message.Substring (index, endIndex - index);
|
||||
|
||||
int.TryParse (columnBuf, out column);
|
||||
int.TryParse (lineBuf, out line);
|
||||
|
|
|
@ -71,7 +71,7 @@ namespace Xamarin.iOS.Tasks
|
|||
Assert.AreEqual (2, Engine.Logger.ErrorEvents[0].ColumnNumber, "ColumnNumber");
|
||||
Assert.AreEqual (197, Engine.Logger.ErrorEvents[0].EndLineNumber, "EndLineNumber");
|
||||
Assert.AreEqual (2, Engine.Logger.ErrorEvents[0].EndColumnNumber, "EndColumnNumber");
|
||||
Assert.AreEqual ("Unexpected character ']'. At line 197, column 2", Engine.Logger.ErrorEvents[0].Message, "Message");
|
||||
Assert.AreEqual ("Unexpected character ']'. At line 197, column 2.", Engine.Logger.ErrorEvents[0].Message, "Message");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче