Files
Monolith/Content.IntegrationTests/PoolManagerTestEventHandler.cs
sleepyyapril b5c4efb845 Fix some test fails (#872)
* fix slice test fail

* log what entities don't spawn

* don't accept slices

* dont log missing radarconsole, we dont care

* fix error

* no way

* silly

* it's a bad test

* okay

* test time will go down the less errors we have, so might as well be able to see all of them

* attrib

* this should be fine?

* yeah

* fix!

* fix

* Revert "okay"

This reverts commit 49dad2dcc5.

* fix missing prototypes
2025-06-19 02:40:14 -07:00

36 lines
1.4 KiB
C#

namespace Content.IntegrationTests;
[SetUpFixture]
public sealed class PoolManagerTestEventHandler
{
// This value is completely arbitrary.
private static TimeSpan MaximumTotalTestingTimeLimit => TimeSpan.FromMinutes(120); // Monolith
private static TimeSpan HardStopTimeLimit => MaximumTotalTestingTimeLimit.Add(TimeSpan.FromMinutes(1));
[OneTimeSetUp]
public void Setup()
{
PoolManager.Startup();
// If the tests seem to be stuck, we try to end it semi-nicely
_ = Task.Delay(MaximumTotalTestingTimeLimit).ContinueWith(_ =>
{
// This can and probably will cause server/client pairs to shut down MID test, and will lead to really confusing test failures.
TestContext.Error.WriteLine($"\n\n{nameof(PoolManagerTestEventHandler)}: ERROR: Tests are taking too long. Shutting down all tests. This may lead to weird failures/exceptions.\n\n");
PoolManager.Shutdown();
});
// If ending it nicely doesn't work within a minute, we do something a bit meaner.
_ = Task.Delay(HardStopTimeLimit).ContinueWith(_ =>
{
var deathReport = PoolManager.DeathReport();
Environment.FailFast($"Tests took way too ;\n Death Report:\n{deathReport}");
});
}
[OneTimeTearDown]
public void TearDown()
{
PoolManager.Shutdown();
}
}