public void TestReadHitsFile()
        {
            var tempFile = Path.GetTempFileName();

            Assert.True(File.Exists(tempFile));

            var lines = InstrumentationHelper.ReadHitsFile(tempFile);

            Assert.NotNull(lines);
        }
示例#2
0
        private void CalculateCoverage()
        {
            foreach (var result in _results)
            {
                if (!File.Exists(result.HitsFilePath))
                {
                    continue;
                }
                var lines = InstrumentationHelper.ReadHitsFile(result.HitsFilePath);
                foreach (var line in lines)
                {
                    var info = line.Split(',');
                    // Ignore malformed lines
                    if (info.Length != 4)
                    {
                        continue;
                    }

                    var document = result.Documents.FirstOrDefault(d => d.Path == info[0]);
                    if (document == null)
                    {
                        continue;
                    }

                    int  start  = int.Parse(info[1]);
                    int  end    = int.Parse(info[2]);
                    bool target = info[3] == "B";

                    for (int j = start; j <= end; j++)
                    {
                        var subLine = document.Lines.First(l => l.Number == j);
                        subLine.Hits = subLine.Hits + 1;

                        if (j == start)
                        {
                            subLine.IsBranchTarget = target;
                        }
                    }
                }

                InstrumentationHelper.DeleteHitsFile(result.HitsFilePath);
            }
        }