/// <summary>
        /// Initializes the current coverage data
        /// </summary>
        private void InitCurrent()
        {
            CoverageState[] currentFile = new CoverageState[0];
            ProfileVector   currentProf = new Data.ProfileVector(0);

            // Check report exists
            if (CoverageEnvironment.ShowCodeCoverage && CoverageEnvironment.report != null)
            {
                string activeFilename = System.IO.Path.GetFullPath(GetActiveFilename());
                if (activeFilename != null)
                {
                    CoverageEnvironment.print("Coverage: Print report on " + activeFilename);

                    Tuple <BitVector, ProfileVector> activeReport = null;
                    DateTime activeFileLastWrite = File.GetLastWriteTimeUtc(activeFilename);

                    if (CoverageEnvironment.report.FileDate >= activeFileLastWrite)
                    {
                        CoverageEnvironment.print("Coverage: Report is up to date");
                        activeReport = CoverageEnvironment.report.GetData(activeFilename);

                        if (activeReport != null)
                        {
                            CoverageEnvironment.print("Coverage: File is inside report");
                            currentProf = activeReport.Item2;
                            currentFile = new CoverageState[activeReport.Item1.Count];

                            foreach (var item in activeReport.Item1.Enumerate())
                            {
                                if (item.Value)
                                {
                                    currentFile[item.Key] = CoverageState.Covered;
                                }
                                else
                                {
                                    currentFile[item.Key] = CoverageState.Uncovered;
                                }
                            }
                        }
                        else
                        {
                            CoverageEnvironment.print("Coverage: File " + activeFilename + " is not inside report");
                        }
                    }
                    else
                    {
                        CoverageEnvironment.print("Coverage: Report is too old compare to file.");
                    }
                }
            }

            this.currentCoverage = currentFile;
            this.currentProfile  = currentProf;
        }
Example #2
0
        /// <summary>
        /// Initializes the current coverage data
        /// </summary>
        private void InitCurrent()
        {
            CoverageState[] currentFile = new CoverageState[0];
            ProfileVector   currentProf = new Data.ProfileVector(0);

            if (Settings.Instance.ShowCodeCoverage)
            {
                string activeFilename = GetActiveFilename();
                if (activeFilename != null)
                {
                    Tuple <BitVector, ProfileVector> activeReport = null;
                    DateTime activeFileLastWrite = File.GetLastWriteTimeUtc(activeFilename);

                    var dataProvider = Data.ReportManagerSingleton.Instance(dte);
                    if (dataProvider != null)
                    {
                        var coverageData = dataProvider.UpdateData();
                        if (coverageData != null && activeFilename != null)
                        {
                            if (coverageData.FileDate >= activeFileLastWrite)
                            {
                                activeReport = coverageData.GetData(activeFilename);
                            }
                        }
                    }

                    if (activeReport != null)
                    {
                        currentProf = activeReport.Item2;
                        currentFile = new CoverageState[activeReport.Item1.Count];

                        foreach (var item in activeReport.Item1.Enumerate())
                        {
                            if (item.Value)
                            {
                                currentFile[item.Key] = CoverageState.Covered;
                            }
                            else
                            {
                                currentFile[item.Key] = CoverageState.Uncovered;
                            }
                        }
                    }
                }
            }

            this.currentCoverage = currentFile;
            this.currentProfile  = currentProf;
        }