public FieldAccessCollector(IFieldAccessPathObserver pathObserver, IFieldAccessExplorationObserver explorationObserver, IPexMeDynamicDatabase pmd, PexMeStaticDatabase psd, int level) { this.pathObserver = pathObserver; this.explorationObserver = explorationObserver; this.pmd = pmd as PexMeDynamicDatabase; this.psd = psd; this.trackedFrameId = -1; this.level = level; this.depth = -1; }
/// <summary> /// Gets invoked after each run, which happens for each path in the exploration /// </summary> /// <param name="host"></param> /// <param name="data"></param> void IPexPathPackage.AfterRun(IPexPathComponent host, object data) { if (pathObserver != null) { pathObserver = host.GetService <IFieldAccessPathObserver>(); } pathObserver.Analyze(); //aggregate the coverage this.pmd.AccumulateMaxCoverage(host.ExplorationServices.Driver.TotalCoverageBuilder); //Check whether any uncovered locations are covered and then store the associated sequence this.pmd.CheckForNewlyCoveredLocations(); }
void IPexPathPackage.Load(IContainer pathContainer) { pathObserver = new FieldAccessPathObserver(); pathContainer.AddComponent("", pathObserver); }