protected void Verify(string source, string expected, bool runFormatter = true) { var inputSolution = CreateSolution(new[] { source }); var expectedSolution = CreateSolution(new[] { expected }); var engine = AnalysisEngine.FromProjects(inputSolution.Projects, alwaysIgnoredSymbols: new[] { "VARYING" }); var regionInfo = engine.GetConditionalRegionInfo().Result.Single(); var actualSolution = engine.RemoveUnnecessaryRegions(regionInfo).Result.Project.Solution; AssertSolutionEqual(expectedSolution, actualSolution); }
protected void Verify(string source, string expected) { var inputSolution = CreateSolution(new[] { source }); var expectedSolution = CreateSolution(new[] { expected }); var engine = AnalysisEngine.FromProjects(inputSolution.Projects, alwaysIgnoredSymbols: new[] { "varying" }); var document = inputSolution.Projects.Single().Documents.Single(); var actualSolution = engine.SimplifyVaryingPreprocessorExpressions(document).Result.Project.Solution; AssertSolutionEqual(expectedSolution, actualSolution); }
private void Verify(string source, Tristate[] expectedStates, string[] preprocessorSymbolsA = null, string[] preprocessorSymbolsB = null) { if (preprocessorSymbolsA == null) { preprocessorSymbolsA = s_defaultPreprocessorSymbolsA; } if (preprocessorSymbolsB == null) { preprocessorSymbolsB = s_defaultPreprocessorSymbolsB; } var projectA = CreateSolution(new[] { source }).Projects.Single(); var engine = AnalysisEngine.FromProjects( new[] { projectA }, symbolConfigurations: new[] { preprocessorSymbolsA, preprocessorSymbolsB }); var regionInfo = engine.GetConditionalRegionInfo().Result.Single(); var regions = regionInfo.Chains.SelectMany(c => c.Regions).ToArray(); Array.Sort(regions); Assert.Equal(expectedStates.Length, regions.Length); // Make sure the state of each region is what we expect for (int i = 0; i < expectedStates.Length; i++) { var expectedState = expectedStates[i]; var region = regions[i]; if (expectedState != region.State) { Assert.False(true, string.Format("The state of the region on line {0} is {1}, expected {2}: {3}", region.Location.GetLineSpan().StartLinePosition.Line, region.State, expectedState, region.StartDirective.ToFullString())); } } }