Example #1
0
        public void SelectionStatements_Switch()
        {
            string path = Path.GetTempFileName();

            try
            {
                RemoteExecutor.Invoke(async pathSerialize =>
                {
                    CoveragePrepareResult coveragePrepareResult = await TestInstrumentationHelper.Run <SelectionStatements>(instance =>
                    {
                        instance.Switch(1);
                        return(Task.CompletedTask);
                    }, persistPrepareResultToFile: pathSerialize);
                    return(0);
                }, path).Dispose();

                CoverageResult result = TestInstrumentationHelper.GetCoverageResult(path);

                result.Document("Instrumentation.SelectionStatements.cs")
                .AssertLinesCovered(BuildConfiguration.Release, (24, 1), (26, 0), (28, 0))
                .AssertBranchesCovered(BuildConfiguration.Release, (24, 1, 1))
                .AssertLinesCovered(BuildConfiguration.Debug, (20, 1), (21, 1), (24, 1), (30, 1))
                .AssertBranchesCovered(BuildConfiguration.Debug, (21, 0, 0), (21, 1, 1), (21, 2, 0), (21, 3, 0));
            }
            finally
            {
                File.Delete(path);
            }
        }
Example #2
0
        public void ExcludeFilteredNestedAutogeneratedTypes()
        {
            string path = Path.GetTempFileName();

            try
            {
                RemoteExecutor.Invoke(async pathSerialize =>
                {
                    CoveragePrepareResult coveragePrepareResult = await TestInstrumentationHelper.Run <ExcludeFilterNestedAutogeneratedTypes>(instance =>
                    {
                        instance.Run();

                        PropertyInfo stateProp = null;
                        foreach (Type type in ((Type)instance.GetType()).Assembly.GetTypes())
                        {
                            if (typeof(Issue_689).FullName == type.FullName)
                            {
                                Assert.Equal(0, (stateProp = type.GetProperty("State")).GetValue(null));
                                break;
                            }
                        }

                        foreach (Type type in ((Type)instance.GetType()).Assembly.GetTypes())
                        {
                            if (typeof(EventSource_Issue_689).FullName == type.FullName)
                            {
                                type.GetMethod("RaiseEvent").Invoke(null, null);
                                break;
                            }
                        }

                        Assert.Equal(2, stateProp.GetValue(null));

                        return(Task.CompletedTask);
                    },
                                                                                                                                              includeFilter: moduleFileName => new string[] { $"[{Path.GetFileNameWithoutExtension(moduleFileName)}*]*ExcludeFilterNestedAutogeneratedTypes", $"[{Path.GetFileNameWithoutExtension(moduleFileName)}*]*Issue_689" },
                                                                                                                                              excludeFilter: moduleFileName => new string[] { $"[{Path.GetFileNameWithoutExtension(moduleFileName)}*]*NestedToFilterOut", $"[{Path.GetFileNameWithoutExtension(moduleFileName)}*]*Uncoverlet" },
                                                                                                                                              persistPrepareResultToFile: pathSerialize);

                    return(0);
                }, path).Dispose();

                TestInstrumentationHelper.GetCoverageResult(path)
                .Document("Instrumentation.ExcludeFilter.cs")
                .AssertLinesCovered(BuildConfiguration.Debug, (12, 1), (13, 1), (14, 1))
                .AssertLinesCovered(BuildConfiguration.Debug, (27, 1), (28, 1), (29, 1), (30, 1), (31, 1))
                .AssertLinesCovered(BuildConfiguration.Debug, (39, 2), (40, 2), (41, 2), (43, 5))
                .AssertLinesCovered(BuildConfiguration.Debug, (50, 1), (51, 1), (52, 1))
                .AssertNonInstrumentedLines(BuildConfiguration.Debug, 17, 21)
                .AssertNonInstrumentedLines(BuildConfiguration.Debug, 33, 36);
            }
            finally
            {
                File.Delete(path);
            }
        }
Example #3
0
        public void SkipAutoProps(bool skipAutoProps)
        {
            string path = Path.GetTempFileName();

            try
            {
                FunctionExecutor.Run(async(string[] parameters) =>
                {
                    CoveragePrepareResult coveragePrepareResult = await TestInstrumentationHelper.Run <AutoProps>(instance =>
                    {
                        instance.AutoPropsNonInit = 10;
                        instance.AutoPropsInit    = 20;
                        int readValue             = instance.AutoPropsNonInit;
                        readValue = instance.AutoPropsInit;
                        return(Task.CompletedTask);
                    },
                                                                                                                  persistPrepareResultToFile: parameters[0], skipAutoProps: bool.Parse(parameters[1]));

                    return(0);
                }, new string[] { path, skipAutoProps.ToString() });

                if (skipAutoProps)
                {
                    TestInstrumentationHelper.GetCoverageResult(path)
                    .Document("Instrumentation.AutoProps.cs")
                    .AssertNonInstrumentedLines(BuildConfiguration.Debug, 12, 13)
                    .AssertNonInstrumentedLines(BuildConfiguration.Release, 12, 13)
                    .AssertLinesCoveredFromTo(BuildConfiguration.Debug, 9, 11)
                    .AssertLinesCovered(BuildConfiguration.Debug, (7, 1))
                    .AssertLinesCovered(BuildConfiguration.Release, (10, 1));
                }
                else
                {
                    TestInstrumentationHelper.GetCoverageResult(path)
                    .Document("Instrumentation.AutoProps.cs")
                    .AssertLinesCoveredFromTo(BuildConfiguration.Debug, 7, 13)
                    .AssertLinesCoveredFromTo(BuildConfiguration.Release, 10, 10)
                    .AssertLinesCoveredFromTo(BuildConfiguration.Release, 12, 13);
                }
            }
            finally
            {
                File.Delete(path);
            }
        }
Example #4
0
        public void SkipAutoPropsInRecords(bool skipAutoProps)
        {
            string path = Path.GetTempFileName();

            try
            {
                FunctionExecutor.Run(async(string[] parameters) =>
                {
                    CoveragePrepareResult coveragePrepareResult = await TestInstrumentationHelper.Run <RecordWithPropertyInit>(instance =>
                    {
                        instance.RecordAutoPropsNonInit = string.Empty;
                        instance.RecordAutoPropsInit    = string.Empty;
                        string readValue = instance.RecordAutoPropsInit;
                        readValue        = instance.RecordAutoPropsNonInit;
                        return(Task.CompletedTask);
                    },
                                                                                                                               persistPrepareResultToFile: parameters[0], skipAutoProps: bool.Parse(parameters[1]));

                    return(0);
                }, new string[] { path, skipAutoProps.ToString() });

                if (skipAutoProps)
                {
                    TestInstrumentationHelper.GetCoverageResult(path).GenerateReport(show: true)
                    .Document("Instrumentation.AutoProps.cs")
                    .AssertNonInstrumentedLines(BuildConfiguration.Debug, 23, 24)
                    .AssertNonInstrumentedLines(BuildConfiguration.Release, 23, 24)
                    .AssertLinesCovered(BuildConfiguration.Debug, (18, 1), (20, 1), (21, 1), (22, 1))
                    .AssertLinesCovered(BuildConfiguration.Release, (21, 1));
                }
                else
                {
                    TestInstrumentationHelper.GetCoverageResult(path)
                    .Document("Instrumentation.AutoProps.cs")
                    .AssertLinesCoveredFromTo(BuildConfiguration.Debug, 18, 24)
                    .AssertLinesCoveredFromTo(BuildConfiguration.Release, 21, 21)
                    .AssertLinesCoveredFromTo(BuildConfiguration.Release, 23, 24);
                }
            }
            finally
            {
                File.Delete(path);
            }
        }
Example #5
0
        public void SkipRecordWithProperties(bool skipAutoProps)
        {
            string path = Path.GetTempFileName();

            try
            {
                FunctionExecutor.Run(async(string[] parameters) =>
                {
                    CoveragePrepareResult coveragePrepareResult = await TestInstrumentationHelper.Run <ClassWithAutoRecordProperties>(instance =>
                    {
                        return(Task.CompletedTask);
                    },
                                                                                                                                      persistPrepareResultToFile: parameters[0], skipAutoProps: bool.Parse(parameters[1]));

                    return(0);
                }, new string[] { path, skipAutoProps.ToString() });

                if (skipAutoProps)
                {
                    TestInstrumentationHelper.GetCoverageResult(path)
                    .Document("Instrumentation.AutoProps.cs")
                    .AssertNonInstrumentedLines(BuildConfiguration.Debug, 29, 29)
                    .AssertNonInstrumentedLines(BuildConfiguration.Release, 29, 29)
                    .AssertLinesCovered(BuildConfiguration.Debug, (32, 1), (33, 1), (34, 1))
                    .AssertLinesCovered(BuildConfiguration.Release, (33, 1));
                }
                else
                {
                    TestInstrumentationHelper.GetCoverageResult(path)
                    .Document("Instrumentation.AutoProps.cs")
                    .AssertLinesCovered(BuildConfiguration.Debug, (29, 3), (31, 1), (32, 1), (33, 1), (34, 1))
                    .AssertLinesCovered(BuildConfiguration.Release, (29, 3), (31, 1), (33, 1));
                }
            }
            finally
            {
                File.Delete(path);
            }
        }