Esempio n. 1
0
        private void RunJITTest(TestAgent test)
        {
            var milestoneCount = (test.MilestoneCount > 0) ? test.MilestoneCount : 1;
            var iterationCount = (test.IterationCount > 0) ? test.IterationCount : 1;

            var compatibleIds = (from e in test.TestUnits
                                 where !e.Incompatible
                                 select e.Id).ToList();

            var incompatibleIds = (from e in test.TestUnits
                                 where e.Incompatible
                                 select e.Id).ToList();

            var ctor = test.ContainerType.GetConstructor(Type.EmptyTypes);
            var container = ctor.Invoke(null);

            Object testedObject = InvokeTestPreparing(test, container);
            var description = GetDescription(test, container, testedObject);
            _resultHandler.AddTest(test, description);
            for (int m = 0; m < milestoneCount; m++)
            {
                var label = GetMilestoneLabel(test, container, testedObject, m);
                _resultHandler.AddMilestoneData(label);
                test.ClearMerkers();
                for (int i = 0; i < iterationCount; i++)
                {
                    if (compatibleIds.Count > 0)
                    {
                        test.SetMarkers(compatibleIds);
                        DoJITTest(test, milestoneCount, iterationCount);
                        test.ClearMerkers();
                    }

                    foreach (var id in incompatibleIds)
                    {
                        test.SetMarker(id);
                        DoJITTest(test, milestoneCount, iterationCount);
                        test.ClearMerkers();
                    }
                }
            }
        }