Exemplo n.º 1
1
        private ReportAnalysis Read(ISymbolReader reader, ICoverageModule module)
        {
            var lines = new List<BlockLineRange>();
            var result = new ReportAnalysis();

            //These are unused
            uint id;
            string name;
            string uName;
            string cName;
            string aName;

            byte[] coverageBuffer = module.GetCoverageBuffer(null);
            while (reader.GetNextMethod(out id, out name, out uName, out cName, out aName, lines))
            {
                var stats = CoverageInfo.GetMethodStatistics(coverageBuffer, lines);
                result.LinesCovered += stats.LinesCovered;
                result.LinesPartiallyCovered += stats.LinesPartiallyCovered;
                result.LinesNotCovered += stats.LinesNotCovered;
                lines.Clear();
            }

            return result;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates and returns the payment module version 1.
        /// </summary>
        /// <returns>
        /// The Payment module V1.
        /// </returns>
        public ICoverageModule GetCoverageModule()
        {
            if (coverageModule == null)
            {
                coverageModule = new CoverageModule.CoverageModule(_configuration);

                Type coverageLogicType = CreateTypeFromConfiguration("CoverageModule", "CoverageLogic", "OpenImis.ModulesV1.CoverageModule.Logic.CoverageLogic");
                coverageModule.SetCoverageLogic((CoverageModule.Logic.ICoverageLogic)ActivatorUtilities.CreateInstance(_serviceProvider, coverageLogicType));
            }
            return(coverageModule);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates a module coverage statistics based on given coverage buffer.
        /// </summary>
        /// <param name="files">List to which instrumented files are added.</param>
        /// <param name="module">Information about module coverage.</param>
        /// <param name="lineStartId">Starting identification number for method lines.</param>
        /// <returns>New <see cref="ModuleStatistics"/> instance.</returns>
        internal static ModuleStatistics Create(FileSpecList files, ICoverageModule module, ref long lineStartId)
        {
            var moduleStats = new ModuleStatistics(module.Name, module.Signature, module.ImageSize, module.ImageLinkTime);

            var lines = new List<BlockLineRange>();
            var coverageBuffer = module.GetCoverageBuffer(null /* tests */);
            using (var symbolReader = module.Symbols.CreateReader())
            {
                uint methodId;
                string methodName;
                string undecoratedMethodName;
                string className;
                string namespaceName;

                while (symbolReader.GetNextMethod(out methodId, out methodName, out undecoratedMethodName, out className, out namespaceName, lines))
                {
                    var namespaceStats = moduleStats.GetOrAddNamespace(namespaceName);
                    var classStats = namespaceStats.GetOrAddClass(className);

                    var methodStats = MethodStatistics.Create(methodId, methodName, undecoratedMethodName, coverageBuffer, lines, files, ref lineStartId);
                    classStats.AddMethod(methodStats);

                    // Clear the method list to be ready for next method.
                    lines.Clear();
                }
            }
            return moduleStats;
        }