Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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}");
        }