public void TestMethod6() { var data = Initialize(); var host = data.Item1; var assembly = data.Item2; var refAssemblies = data.Item3; var scopeAnalysis = new ScopeAnalysis(host, assembly, refAssemblies, null); scopeAnalysis.Analyze(); var results = scopeAnalysis.Results; var interestingResults = results.Where(r => r.Interesting && !r.Failed).ToList(); //Check that all reducers in PeriScope.dll have been analyzed successfuly. Assert.AreEqual(interestingResults.Count(), 11); }
public void TestMethod5() { var data = Initialize(); var host = data.Item1; var assembly = data.Item2; var refAssemblies = data.Item3; var interestingReducer = new HashSet <string>() { }; var scopeAnalysis = new ScopeAnalysis(host, assembly, refAssemblies, interestingReducer); scopeAnalysis.Analyze(); var results = scopeAnalysis.Results; var interestingResults = results.Where(r => r.Interesting).ToList(); Assert.AreEqual(interestingResults.Count(), 0); }
public void TestMethod2() { var data = Initialize(); var host = data.Item1; var assembly = data.Item2; var refAssemblies = data.Item3; var interestingReducer = new HashSet <string>() { "PeriScope.FineNoEscapeByField2" }; var scopeAnalysis = new ScopeAnalysis(host, assembly, refAssemblies, interestingReducer); scopeAnalysis.Analyze(); var results = scopeAnalysis.Results; var interestingResults = results.Where(r => r.Interesting).ToList(); Assert.AreEqual(interestingResults.Count, interestingReducer.Count); var result = interestingResults.ElementAt(0); Assert.IsFalse(result.EscapeSummary.IsTop); Assert.IsFalse(result.UsedColumnsSummary.IsBottom); Assert.IsFalse(result.UsedColumnsSummary.IsTop); var columns = ColumnIndicesAsStrings(result.UsedColumnsSummary); Assert.IsTrue(columns.Count == 1); var expected = new HashSet <string>() { "count" }; Assert.IsTrue(columns.SetEquals(expected)); }
public void TestMethod7() { var data = Initialize(); var host = data.Item1; var assembly = data.Item2; var refAssemblies = data.Item3; var interestingReducer = new HashSet <string>() { "PeriScope.BadCallIEnumerableRowMethod", "PeriScope.BadSetOutterField", "PeriScope.BadSetStaticField", "PeriScope.BadEscapeByCall", "PeriScope.BadEscapeByRecursion" }; var scopeAnalysis = new ScopeAnalysis(host, assembly, refAssemblies, interestingReducer); scopeAnalysis.Analyze(); var results = scopeAnalysis.Results; var interestingResults = results.Where(r => r.Interesting).ToList(); Assert.AreEqual(interestingResults.Count(), interestingReducer.Count); foreach (var r in interestingResults) { Assert.IsTrue(r.EscapeSummary.IsTop); } }