Files
lorry li 96b55c1d11 Make sure the web server process can be closed properly when run web tests on automation tool, to fix the pipeline not closed warning;
Fix the low level report parser error, when there are sections in test cases.

#jira UE-182678
[REVIEW] [at]chris.constantinescu [at]stephen.ma

[CL 27596208 by lorry li in ue5-main branch]
2023-09-05 10:35:43 -04:00

58 lines
1.7 KiB
C#

// Copyright Epic Games, Inc. All Rights Reserved.
using Gauntlet;
using System;
using System.Linq;
using System.Xml.Linq;
namespace LowLevelTests
{
public class LowLevelTestsReportParser
{
private XDocument ReportDoc;
public bool IsValid { get; protected set; }
public LowLevelTestsReportParser(string InContents)
{
try
{
ReportDoc = XDocument.Parse(InContents);
IsValid = true;
}
catch (Exception ParseEx)
{
Log.Warning("Encountered error while parsing report {0}", ParseEx.ToString());
IsValid = false;
}
}
public bool HasPassed()
{
if (!IsValid)
{
return false;
}
int NrOverallResultsFailures = -1;
int NrOverallResultsSuccesses = -1;
int NrOverallResultsCasesFailures = -1;
int NrOverallResultsCasesSuccesses = -1;
// OverallResults also exists in each SECTION of every test case, we need to use the last one in the end of the xml report
XElement OverallResults = ReportDoc.Descendants("OverallResults").LastOrDefault();
if (OverallResults != null)
{
NrOverallResultsFailures = int.Parse(OverallResults.Attribute("failures").Value);
NrOverallResultsSuccesses = int.Parse(OverallResults.Attribute("successes").Value);
}
XElement OverallResultsCases = ReportDoc.Descendants("OverallResultsCases").LastOrDefault();
if (OverallResultsCases != null)
{
NrOverallResultsCasesFailures = int.Parse(OverallResultsCases.Attribute("failures").Value);
NrOverallResultsCasesSuccesses = int.Parse(OverallResultsCases.Attribute("successes").Value);
}
return NrOverallResultsFailures == 0 && NrOverallResultsCasesFailures == 0 && NrOverallResultsSuccesses > 0 && NrOverallResultsCasesSuccesses > 0;
}
}
}