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); } }
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); } }
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); } }
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); } }
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); } }