protected override void DoTest(IProject project) { var swea = SolutionAnalysisService.GetInstance(Solution); #if RIDER using (TestPresentationMap.Cookie()) #else using (new TestPresentationMap()) #endif using (TestPsiConfigurationSettings.Instance.PersistCachesCookie()) using (swea.RunAnalysisCookie()) { Lifetimes.Using(lifetime => { ChangeSettingsTemporarily(lifetime).BoundStore.SetValue(HighlightingSettingsAccessor.AnalysisEnabled, AnalysisScope.SOLUTION); var files = swea.GetFilesToAnalyze().OrderBy(f => f.Name).ToList(); foreach (var file in files) { swea.AnalyzeInvisibleFile(file); } ExecuteWithGold(writer => { var highlightingSettingsManager = HighlightingSettingsManager.Instance; foreach (var file in files) { if (file.LanguageType.IsNullOrUnknown()) { continue; } var pf = file.ToProjectFile(); if (pf == null) { continue; } if (!pf.Location.Name.EndsWith(".cs")) { continue; } var process = new TestHighlightingDumper(file, writer, DaemonStageManager.GetInstance(Solution).Stages, (highlighting, settingsStore) => { var attribute = highlightingSettingsManager.GetHighlightingAttribute(highlighting); return(highlightingSettingsManager.GetSeverity(highlighting, settingsStore) != Severity.INFO || attribute.OverlapResolve != OverlapResolveKind.NONE); }, CSharpLanguage.Instance); process.DoHighlighting(DaemonProcessKind.VISIBLE_DOCUMENT); process.DoHighlighting(DaemonProcessKind.GLOBAL_WARNINGS); process.Dump(); writer.WriteLine(); } }); }); } }
protected override IReadOnlyCollection <IDaemonStage> GetActiveStages(ISolution solution) { var stageManager = DaemonStageManager.GetInstance(solution); return(stageManager.Stages .Where(stage => stage is InterproceduralDaemonStage || stage is TaintedSinksHighlighterDaemonStage) .ToList()); }
protected override void DoTest(IProject project) { var swea = SolutionAnalysisService.GetInstance(Solution); using (TestPresentationMap.Cookie()) using (TestPsiConfigurationSettings.Instance.PersistCachesCookie()) using (swea.RunAnalysisCookie()) { Lifetime.Using(lifetime => { ChangeSettingsTemporarily(lifetime).BoundStore.SetValue(HighlightingSettingsAccessor.AnalysisEnabled, AnalysisScope.SOLUTION); var files = swea.GetFilesToAnalyze().OrderBy(f => f.Name).ToList(); foreach (var file in files) { swea.AnalyzeInvisibleFile(file); } ExecuteWithGold(this.TestMethodName + ".cs", writer => { foreach (var file in files) { if (file.LanguageType.IsNullOrUnknown()) { continue; } var pf = file.ToProjectFile(); if (pf == null) { continue; } if (!pf.Location.Name.EndsWith(".cs")) { continue; } var process = new TestHighlightingDumper(file, writer, DaemonStageManager.GetInstance(Solution).Stages, (highlighting, psiSourceFile, settingsStore) => { return(highlighting is PerformanceHighlightingBase); }, CSharpLanguage.Instance); process.DoHighlighting(DaemonProcessKind.VISIBLE_DOCUMENT); process.DoHighlighting(DaemonProcessKind.GLOBAL_WARNINGS); process.Dump(); } }); }); } }
protected virtual IList <IDaemonStage> GetActiveStages(ISolution solution) { return(DaemonStageManager.GetInstance(solution).Stages); }
protected override void DoTest(Lifetime lifetime, IProject project) { var swea = SolutionAnalysisService.GetInstance(Solution); using (TestPresentationMap.Cookie()) using (TestPsiConfigurationSettings.Instance.PersistCachesCookie()) using (swea.RunAnalysisCookie()) { ChangeSettingsTemporarily(lifetime).BoundStore.SetValue((UnitySettings key) => key.PerformanceHighlightingMode, PerformanceHighlightingMode.Always); var files = swea.GetFilesToAnalyze().OrderBy(f => f.Name).ToList(); swea.ReanalyzeAll(); ExecuteWithGold(TestMethodName + ".cs", writer => { foreach (var file in files) { if (file.LanguageType.IsNullOrUnknown()) { continue; } var pf = file.ToProjectFile(); if (pf == null) { continue; } if (!pf.Location.Name.EndsWith(".cs")) { continue; } var process = new TestHighlightingDumperWithOverridenStages(file, writer, DaemonStageManager.GetInstance(Solution).Stages, HighlightingPredicate, CSharpLanguage.Instance); process.DoHighlighting(DaemonProcessKind.VISIBLE_DOCUMENT); process.DoHighlighting(DaemonProcessKind.GLOBAL_WARNINGS); process.Dump(); } }); } }