Beispiel #1
0
        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()));
                }
            }
        }