File: Extensions.cs
Web Access
Project: ..\..\..\src\MSBuild.Benchmarks\MSBuild.Benchmarks.csproj (MSBuild.Benchmarks)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using BenchmarkDotNet.Reports;
 
namespace MSBuild.Benchmarks;
 
internal static class Extensions
{
    public static int ToExitCode(this IEnumerable<Summary> summaries)
    {
        // an empty summary means that initial filtering and validation did not allow to run
        if (!summaries.Any())
        {
            return 1;
        }
 
        // if anything has failed, it's an error
        return summaries.Any(HasAnyErrors) ? 1 : 0;
    }
 
    public static bool HasAnyErrors(this Summary summary)
        => summary.HasCriticalValidationErrors || summary.Reports.Any(report => report.HasAnyErrors());
 
    public static bool HasAnyErrors(this BenchmarkReport report)
        => !report.BuildResult.IsBuildSuccess || !report.AllMeasurements.Any();
}