[xharness] Improve a bit how logs are parsed and the results shown. (#1481)

Also find '[FAIL]'s in execution logs (which some mac tests produce) as well.
This commit is contained in:
Rolf Bjarne Kvinge 2017-01-12 19:40:14 +01:00 коммит произвёл GitHub
Родитель 687aa6f25f
Коммит 483e067a3e
1 изменённых файлов: 17 добавлений и 6 удалений

Просмотреть файл

@ -1194,19 +1194,26 @@ function oninitialload ()
foreach (var log in logs) { foreach (var log in logs) {
log.Flush (); log.Flush ();
writer.WriteLine ("<a href='{0}' type='text/plain'>{1}</a><br />", System.Web.HttpUtility.UrlPathEncode (log.FullPath.Substring (LogDirectory.Length + 1)), log.Description); writer.WriteLine ("<a href='{0}' type='text/plain'>{1}</a><br />", System.Web.HttpUtility.UrlPathEncode (log.FullPath.Substring (LogDirectory.Length + 1)), log.Description);
if (log.Description == "Test log") { if (log.Description == "Test log" || log.Description == "Execution log") {
var summary = string.Empty; var summary = string.Empty;
var fails = new List<string> ();
try { try {
using (var reader = log.GetReader ()) { using (var reader = log.GetReader ()) {
while (!reader.EndOfStream) { while (!reader.EndOfStream) {
string line = reader.ReadLine (); string line = reader.ReadLine ().Trim ();
if (line.StartsWith ("Tests run:", StringComparison.Ordinal)) { if (line.StartsWith ("Tests run:", StringComparison.Ordinal)) {
summary = line; summary = line;
} else if (line.Trim ().StartsWith ("[FAIL]", StringComparison.Ordinal)) { } else if (line.StartsWith ("[FAIL]", StringComparison.Ordinal)) {
writer.WriteLine ("<span style='padding-left: 20px;'>{0}</span><br />", line.Trim ()); fails.Add (line);
} }
} }
} }
if (fails.Count > 0) {
writer.WriteLine ("<div style='padding-left: 15px;'>");
foreach (var fail in fails)
writer.WriteLine ("{0} <br />", System.Web.HttpUtility.HtmlEncode (fail));
writer.WriteLine ("</div>");
}
if (!string.IsNullOrEmpty (summary)) if (!string.IsNullOrEmpty (summary))
writer.WriteLine ("<span style='padding-left: 15px;'>{0}</span><br />", summary); writer.WriteLine ("<span style='padding-left: 15px;'>{0}</span><br />", summary);
} catch (Exception ex) { } catch (Exception ex) {
@ -1222,8 +1229,12 @@ function oninitialload ()
errors.Add (line); errors.Add (line);
} }
} }
foreach (var error in errors) if (errors.Count > 0) {
writer.WriteLine ("<span style='padding-left: 15\tpx;'>{0}</span> <br />", error); writer.WriteLine ("<div style='padding-left: 15px;'>");
foreach (var error in errors)
writer.WriteLine ("{0} <br />", System.Web.HttpUtility.HtmlEncode (error));
writer.WriteLine ("</div>");
}
} catch (Exception ex) { } catch (Exception ex) {
writer.WriteLine ("<span style='padding-left: 15px;'>Could not parse log file: {0}</span><br />", System.Web.HttpUtility.HtmlEncode (ex.Message)); writer.WriteLine ("<span style='padding-left: 15px;'>Could not parse log file: {0}</span><br />", System.Web.HttpUtility.HtmlEncode (ex.Message));
} }