public void AddCoverageBlock_Adds_BlockToCurrentMethodToReport() { //arrange receiver.EnterAssembly(0, "DomainName", "AssemblyName", "ModuleName"); receiver.EnterTypedef("TypedefName", 0); receiver.EnterMethod("MethodName", "MethodSig", 0, 0, 0, 0, 0); var blockData = new BLOCK_DATA { position = 99, visitCount = 0, blockLen = 0 }; //act receiver.AddCoverageBlock(blockData); //assert Assert.AreEqual(1, receiver.Report.Assemblies[0].Types[0].Methods[0].Blocks.Count); Assert.AreEqual(99, receiver.Report.Assemblies[0].Types[0].Methods[0].Blocks[0].Offset); }
/// <summary> /// Called when receiving a report about an instrumented block /// </summary> /// <param name="blockData"></param> public void AddCoverageBlock(BLOCK_DATA blockData) { var block = (currentMethod.Blocks.Count > 0) ? currentMethod.Blocks.Find(x => x.Offset == blockData.position) : null; if (block != null) { //block.Length = blockData.blockLen; block.VisitCount = blockData.visitCount; } else { currentMethod.Blocks.Add(new MethodBlock { File = 0, Offset = blockData.position, //Length = blockData.blockLen, VisitCount = blockData.visitCount, Start = new Position(), End = new Position(), }); } }