public void TestDynamicProeprtyReaderPerformance() { string testString = "Hello."; const int secondsToRun = 1; long runsPerSec = RunCounter.SpinPerSec(secondsToRun * 1000, () => testString.GetPropertyValue <int>("Length")); long actualRunsPerSec = (long)(runsPerSec / (double)secondsToRun); long expectedBaseLine = 2450000; this.TestContext.WriteLine("Ran dynamic property accessor {0:#,#0} per second, expected {1:#,#0}.", actualRunsPerSec, expectedBaseLine); }
public void ShutdownAfterExecute() { var counter = new RunCounter(1); this.eventLoop.Execute(counter); Assert.True(counter.Completion.Wait(DefaultTimeout)); Assert.Equal(1, counter.Count); Assert.True(this.eventLoop.ShutdownGracefullyAsync(TimeSpan.Zero, TimeSpan.Zero).Wait(DefaultTimeout)); Assert.True(this.eventLoop.IsTerminated); Assert.Throws <RejectedExecutionException>(() => this.eventLoop.Execute(this.noOp)); }
public void ScheduleTask() { const int Delay = 500; var counter = new RunCounter(1); long startTime = DateTime.UtcNow.Ticks; IScheduledTask task = this.eventLoop.Schedule(counter, TimeSpan.FromMilliseconds(Delay)); Assert.True(task.Completion.Wait(DefaultTimeout)); Assert.Equal(1, counter.Count); long delay = counter.EndTime - startTime; Assert.True(delay > 0); TimeSpan duration = TimeSpan.FromTicks(delay); Assert.True(duration.TotalMilliseconds >= Delay, $"Expected delay : {Delay} milliseconds, but was : {duration}"); }