public async Task On_FiresOnCorrectTypeOnly() { i1 = new IpcInterface(); i2 = new IpcInterface(i1.PartnerPort, i1.Port); var spinLock = true; i1.On <DummyClass>(dummyClass => { spinLock = false; }); i1.On <DummierClass>(dummierClass => {}); await i2.SendMessage(new DummierClass()); await Task.Delay(SpinlockWait * 5000); Assert.IsTrue(spinLock); }
public async Task ReceiveMessage_AvgTimeIsBelow1Ms() { i1 = new IpcInterface(); i2 = new IpcInterface(i1.PartnerPort, i1.Port); var dummyClass = new DummyClass(); var stopwatch = new Stopwatch(); var spinLock = true; i1.On <DummyClass>(dc => { stopwatch.Stop(); spinLock = false; }); for (var i = 0; i < Iterations; i++) { await i2.SendMessage(dummyClass); stopwatch.Start(); while (spinLock) { await Task.Delay(1); } spinLock = true; } var averageMs = stopwatch.ElapsedMilliseconds / Iterations; Assert.IsTrue(averageMs <= 1, "Expected <=1ms, got {0}ms", averageMs); }
private async Task SpinlockForMessage() { var spinLock = true; i1.On <DummyClass>(dummyClass => { spinLock = false; }); await i2.SendMessage(new DummyClass()); while (spinLock) { await Task.Delay(SpinlockWait); } }
public async Task SendMessage_WorksWithActualChildProcess() { i1 = new IpcInterface(); var spinLock = true; i1.On <DummyClass>(dummyClass => { spinLock = false; }); var path = Path.Combine(TestContext.CurrentContext.TestDirectory, "..", "..", "..", "..", "SimpleIPCHttp.TestDummy", "bin", "Debug", "netcoreapp3.1", "SimpleIPCHttp.TestDummy.exe"); var program = Process.Start(path, $"{i1.PartnerPort} {i1.Port}"); while (spinLock) { await Task.Delay(SpinlockWait); } program.Kill(); }
public async Task SendMessage_AvgTimeIsBelow1Ms() { i1 = new IpcInterface(); i2 = new IpcInterface(i1.PartnerPort, i1.Port); var stopwatch = new Stopwatch(); i1.On <DummyClass>(dummyClass => {}); for (var i = 0; i < Iterations; i++) { stopwatch.Start(); await i2.SendMessage(new DummyClass()); stopwatch.Stop(); } var averageMs = stopwatch.ElapsedMilliseconds / Iterations; Assert.IsTrue(averageMs <= 1, "Expected <=1ms, got {0}ms", averageMs); }