Files
UnrealEngineUWP/Engine/Source/Programs/AutomationTool/LowLevelTests/Utility/LowLevelTests.ReportParser.cs
chris constantinescu 7859a6cdb4 Catch2 feature introduced: test groups and group events at global, group and test group before/after levels
#preflight 636ab505450be1d9f83e90e4
#rb Jerome.Delattre

[CL 23039159 by chris constantinescu in ue5-main branch]
2022-11-08 16:02:46 -05:00

57 lines
1.6 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.Error("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;
XElement OverallResults = ReportDoc.Descendants("OverallResults").FirstOrDefault();
if (OverallResults != null)
{
NrOverallResultsFailures = int.Parse(OverallResults.Attribute("failures").Value);
NrOverallResultsSuccesses = int.Parse(OverallResults.Attribute("successes").Value);
}
XElement OverallResultsCases = ReportDoc.Descendants("OverallResultsCases").FirstOrDefault();
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;
}
}
}