예제 #1
0
        public void LocalExecutorTimedOutJoinTest()
        {
            var testMethod = new Func<object[], object>(
                (parameters) =>
                    {
                        while (true)
                        {
                            Thread.Sleep(10);
                        }
                    });

            var executor = new LocalExecutor();
            executor.InitializeNonGeneric(testMethod);
            executor.Execute(null);
            executor.Join(timeout: new TimeSpan(days: 0, hours: 0, minutes: 0, seconds: 0, milliseconds: 30));

            executor.ElapsedTime.Value.ShouldBeLessThan(new TimeSpan(days: 0, hours: 0, minutes: 0, seconds: 3, milliseconds: 0));

            // join with timeout shouldn't abort thread
            // executor.Exception.GetType().ShouldBe(typeof(ThreadAbortException));
        }