예제 #1
0
        public void TestStateMachineFinalizerInvoked()
        {
            var tracker = new GCTracker();

            var           config = this.GetConfiguration().WithTestingIterations(2);
            TestingEngine engine = TestingEngine.Create(config, (IActorRuntime r) =>
            {
                var setup = new SetupEvent(tracker);
                r.CreateActor(typeof(M), setup);
            });

            engine.Run();

            // Force a full GC.
            GC.Collect(2);
            GC.WaitForFullGCComplete();
            GC.WaitForPendingFinalizers();
            Assert.True(tracker.IsFinalized, "Finalizer was not called.");
        }
예제 #2
0
 private void InitOnEntry(Event e)
 {
     this.Tracker = (e as SetupEvent).Tracker;
 }
예제 #3
0
 protected override Task OnInitializeAsync(Event initialEvent)
 {
     this.Tracker = (initialEvent as SetupEvent).Tracker;
     return(Task.CompletedTask);
 }
예제 #4
0
 internal SetupEvent(GCTracker tracker)
 {
     this.Tracker = tracker;
 }