Changes required for frozen event bus PR (#23493)
* Changes required for frozen event bus PR * Fix RoundEndTest
This commit is contained in:
@@ -8,8 +8,24 @@ using Robust.Shared.GameObjects;
|
||||
namespace Content.IntegrationTests.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class RoundEndTest : IEntityEventSubscriber
|
||||
public sealed class RoundEndTest
|
||||
{
|
||||
private sealed class RoundEndTestSystem : EntitySystem
|
||||
{
|
||||
public int Count;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
SubscribeLocalEvent<RoundEndSystemChangedEvent>(OnRoundEnd);
|
||||
}
|
||||
|
||||
private void OnRoundEnd(RoundEndSystemChangedEvent ev)
|
||||
{
|
||||
Interlocked.Increment(ref Count);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Test()
|
||||
{
|
||||
@@ -22,13 +38,12 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
var server = pair.Server;
|
||||
|
||||
var entManager = server.ResolveDependency<IEntityManager>();
|
||||
var config = server.ResolveDependency<IConfigurationManager>();
|
||||
var sysManager = server.ResolveDependency<IEntitySystemManager>();
|
||||
var ticker = sysManager.GetEntitySystem<GameTicker>();
|
||||
var roundEndSystem = sysManager.GetEntitySystem<RoundEndSystem>();
|
||||
|
||||
var eventCount = 0;
|
||||
var sys = server.System<RoundEndTestSystem>();
|
||||
sys.Count = 0;
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
@@ -43,11 +58,6 @@ namespace Content.IntegrationTests.Tests
|
||||
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
var bus = entManager.EventBus;
|
||||
bus.SubscribeEvent<RoundEndSystemChangedEvent>(EventSource.Local, this, _ =>
|
||||
{
|
||||
Interlocked.Increment(ref eventCount);
|
||||
});
|
||||
|
||||
// Press the shuttle call button
|
||||
roundEndSystem.RequestRoundEnd();
|
||||
@@ -118,8 +128,8 @@ namespace Content.IntegrationTests.Tests
|
||||
async Task WaitForEvent()
|
||||
{
|
||||
var timeout = Task.Delay(TimeSpan.FromSeconds(10));
|
||||
var currentCount = Thread.VolatileRead(ref eventCount);
|
||||
while (currentCount == Thread.VolatileRead(ref eventCount) && !timeout.IsCompleted)
|
||||
var currentCount = Thread.VolatileRead(ref sys.Count);
|
||||
while (currentCount == Thread.VolatileRead(ref sys.Count) && !timeout.IsCompleted)
|
||||
{
|
||||
await pair.RunTicksSync(5);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user