LibHac/tests/LibHac.Tests/LibHacTestFramework.cs
2023-12-09 18:48:56 -07:00

45 lines
No EOL
1.2 KiB
C#

using System.Diagnostics;
using System.Linq;
using LibHac.Diag;
using LibHac.Tests;
using Xunit.Abstractions;
using Xunit.Sdk;
[assembly: Xunit.TestFramework("LibHac.Tests." + nameof(LibHacTestFramework), "LibHac.Tests")]
namespace LibHac.Tests;
public class LibHacTestFramework : XunitTestFramework
{
public LibHacTestFramework(IMessageSink messageSink)
: base(messageSink)
{
SetDebugHandler();
SetResultNames();
}
// Todo: Catch assertions in PathToolTestGenerator.cpp
private static readonly string[] SkipAbortFunctions = ["Normalize"];
private static void SetDebugHandler()
{
AssertionFailureHandler handler = (in AssertionInfo info) =>
{
if (SkipAbortFunctions.Contains(info.FunctionName))
{
return AssertionFailureOperation.Continue;
}
return AssertionFailureOperation.Abort;
};
Assert.SetAssertionFailureHandler(handler);
Trace.Listeners.Clear();
Trace.Listeners.Add(new DebugAssertHandler());
}
private static void SetResultNames()
{
Result.SetNameResolver(new ResultNameResolver());
}
}