diff --git a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin index 7b2ab73202..0eac8c5c84 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin +++ b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.addin @@ -1,7 +1,7 @@ diff --git a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj index c763fe5e61..4e303d18bd 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj +++ b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj @@ -6,7 +6,7 @@ CodeCoverage Debug AnyCPU - {08ce9972-283b-44f4-82fa-966f7dfa6b7a} + {08CE9972-283B-44F4-82FA-966F7DFA6B7A} False False False @@ -51,6 +51,7 @@ 4.0 + 3.0 @@ -59,7 +60,9 @@ - + + UserControl + @@ -72,7 +75,9 @@ - + + Component + @@ -82,19 +87,25 @@ - - - + + + - + + UserControl + - - + + Component + + + UserControl + diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs index 555dd83044..089bae2f8f 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethod.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Reflection; using System.Xml; +using System.Xml.Linq; using ICSharpCode.Core; namespace ICSharpCode.CodeCoverage @@ -39,44 +40,46 @@ namespace ICSharpCode.CodeCoverage } } - public CodeCoverageMethod(string className, XmlReader reader) + public CodeCoverageMethod(string className, XElement reader) : this(GetMethodName(reader), className, GetMethodAttributes(reader)) { ReadMethodBodySize(reader); + XAttribute isGetter = reader.Attribute("isGetter"); + XAttribute isSetter = reader.Attribute("isSetter"); + if (isGetter != null && isSetter != null && IsPropertyMethodName()) { + try { + IsProperty = Convert.ToBoolean(isGetter.Value) || Convert.ToBoolean(isSetter.Value); + } catch (FormatException) { + IsProperty = false; + } + } + else { + IsProperty = false; + } } - static string GetMethodName(XmlReader reader) + static string GetMethodName(XElement reader) { - return reader.GetAttribute("name"); + return reader.Element("Name").Value; } - static MethodAttributes GetMethodAttributes(XmlReader reader) + static MethodAttributes GetMethodAttributes(XElement reader) { - string flags = reader.GetAttribute("flags"); - if (flags != null) { - try { - return (MethodAttributes)Enum.Parse(typeof(MethodAttributes), flags); - } catch (ArgumentException) { } - } return MethodAttributes.Public; } - void ReadMethodBodySize(XmlReader reader) + void ReadMethodBodySize(XElement reader) { - string bodySizeAsString = reader.GetAttribute("bodysize"); - if (bodySizeAsString != null) { - methodBodySize = Int32.Parse(bodySizeAsString); - } + //string bodySizeAsString = reader.GetAttribute("bodysize"); + //if (bodySizeAsString != null) { + // methodBodySize = Int32.Parse(bodySizeAsString); + //} } /// /// Returns true if the method is a getter or setter method for a property. /// - public bool IsProperty { - get { - return IsSpecialMethodName() && IsPropertyMethodName(); - } - } + public bool IsProperty { get; private set; } bool IsSpecialMethodName() { @@ -85,7 +88,7 @@ namespace ICSharpCode.CodeCoverage bool IsPropertyMethodName() { - return name.StartsWith("get_") || name.StartsWith("set_"); + return name.Contains("::get_") || name.Contains("::set_"); } public string Name { diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProjectOptionsPanel.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProjectOptionsPanel.cs index 09420d2ec5..2abcbe5e56 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProjectOptionsPanel.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProjectOptionsPanel.cs @@ -52,17 +52,17 @@ namespace ICSharpCode.CodeCoverage void SavePartCoverSettings() { - PartCoverSettings settings = new PartCoverSettings(); + OpenCoverSettings settings = new OpenCoverSettings(); settings.Include.AddRange(RemoveEmptyStrings(includeListTextBox.Lines)); settings.Exclude.AddRange(RemoveEmptyStrings(excludeListTextBox.Lines)); - settings.Save(PartCoverSettings.GetFileName(project)); + settings.Save(OpenCoverSettings.GetFileName(project)); } void ReadPartCoverSettings() { - string settingsFileName = PartCoverSettings.GetFileName(project); + string settingsFileName = OpenCoverSettings.GetFileName(project); if (File.Exists(settingsFileName)) { - PartCoverSettings settings = new PartCoverSettings(settingsFileName); + OpenCoverSettings settings = new OpenCoverSettings(settingsFileName); includeListTextBox.Text = ConvertToMultLineString(settings.Include); excludeListTextBox.Text = ConvertToMultLineString(settings.Exclude); } diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs index fcb4a202e9..c2a29a7b07 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs @@ -4,8 +4,8 @@ using System; using System.Collections.Generic; using System.IO; -using System.Reflection; -using System.Xml; +using System.Linq; +using System.Xml.Linq; namespace ICSharpCode.CodeCoverage { @@ -23,13 +23,13 @@ namespace ICSharpCode.CodeCoverage { } - public CodeCoverageResults(XmlReader reader) + public CodeCoverageResults(XContainer reader) { ReadResults(reader); } public CodeCoverageResults(TextReader reader) - : this(new XmlTextReader(reader)) + : this(XDocument.Load(reader)) { } @@ -46,60 +46,76 @@ namespace ICSharpCode.CodeCoverage get { return modules; } } - void ReadResults(XmlReader reader) + void ReadResults(XContainer reader) { - CodeCoverageModule currentModule = null; - CodeCoverageMethod currentMethod = null; - string currentClassName = String.Empty; - - while (reader.Read()) { - switch (reader.NodeType) { - case XmlNodeType.Element: - if (reader.Name == "Type") { - currentModule = AddModule(reader); - currentClassName = reader.GetAttribute("name"); - } else if ((reader.Name == "Method") && (currentModule != null)) { - currentMethod = AddMethod(currentModule, currentClassName, reader); - } else if ((reader.Name == "pt") && (currentMethod != null)) { - AddSequencePoint(currentMethod, reader); - } else if (reader.Name == "File") { - AddFileName(reader); - } else if (reader.Name == "Assembly") { - AddAssembly(reader); - } - break; - } + IEnumerable modules = reader.Descendants("Module").Where(m => m.Attribute("skippedDueTo") == null); + foreach (XElement file in reader.Descendants("File")) { + AddFileName(file); + } + foreach (XElement assembly in modules) { + AddAssembly(assembly); + RegisterAssembly(assembly); + } + } + + private void RegisterAssembly(XElement assembly) + { + var classNames = + assembly.Elements("Classes").Elements("Class").Where( + c => + !c.Element("FullName").Value.Contains("__") && !c.Element("FullName").Value.Contains("<") && + !c.Element("FullName").Value.Contains("/") && c.Attribute("skippedDueTo") == null).Select( + c => c.Element("FullName").Value).Distinct().OrderBy(name => name); + foreach (string className in classNames) { + AddModule(assembly, className); } - reader.Close(); } /// /// Add module if it does not already exist. /// - CodeCoverageModule AddModule(XmlReader reader) + CodeCoverageModule AddModule(XElement reader, string className) { string assemblyName = GetAssemblyName(reader); + CodeCoverageModule module = null; foreach (CodeCoverageModule existingModule in modules) { if (existingModule.Name == assemblyName) { - return existingModule; + module = existingModule; + break; } } - - CodeCoverageModule module = new CodeCoverageModule(assemblyName); - modules.Add(module); + if (module == null) { + module = new CodeCoverageModule(assemblyName); + modules.Add(module); + } + var methods = reader + .Elements("Classes") + .Elements("Class") + .Where(c => c.Element("FullName").Value.StartsWith(className, StringComparison.Ordinal)) + .Elements("Methods") + .Elements("Method"); + foreach (XElement method in methods) { + AddMethod(module, className, method); + } return module; } - string GetAssemblyName(XmlReader reader) + string GetAssemblyName(XElement reader) { - string id = reader.GetAttribute("asmref"); + string id = reader.Attribute("hash").Value; return GetAssembly(id); } - CodeCoverageMethod AddMethod(CodeCoverageModule module, string className, XmlReader reader) + CodeCoverageMethod AddMethod(CodeCoverageModule module, string className, XElement reader) { CodeCoverageMethod method = new CodeCoverageMethod(className, reader); module.Methods.Add(method); + var points = reader + .Elements("SequencePoints") + .Elements("SequencePoint"); + foreach (XElement point in points) { + AddSequencePoint(method, point, reader); + } return method; } @@ -109,20 +125,20 @@ namespace ICSharpCode.CodeCoverage /// for types that are not part of the project but types from /// the .NET framework. /// - void AddSequencePoint(CodeCoverageMethod method, XmlReader reader) + void AddSequencePoint(CodeCoverageMethod method, XElement reader, XElement methodNode) { - string fileName = GetFileName(reader); + string fileName = GetFileName(methodNode); CodeCoverageSequencePoint sequencePoint = new CodeCoverageSequencePoint(fileName, reader); method.SequencePoints.Add(sequencePoint); } - string GetFileName(XmlReader reader) + string GetFileName(XElement reader) { - string fileId = reader.GetAttribute("fid"); + XElement fileId = reader.Element("FileRef"); if (fileId != null) { - return GetFileName(fileId); + return GetFileName(fileId.Attribute("uid").Value); } return String.Empty; } @@ -156,20 +172,20 @@ namespace ICSharpCode.CodeCoverage /// /// Saves the filename and its associated id for reference. /// - void AddFileName(XmlReader reader) + void AddFileName(XElement reader) { - string id = reader.GetAttribute("id"); - string fileName = reader.GetAttribute("url"); + string id = reader.Attribute("uid").Value; + string fileName = reader.Attribute("fullPath").Value; fileNames.Add(id, fileName); } /// /// Saves the assembly and its associated id for reference. /// - void AddAssembly(XmlReader reader) + void AddAssembly(XElement reader) { - string id = reader.GetAttribute("id"); - string name = reader.GetAttribute("name"); + string id = reader.Attribute("hash").Value; + string name = reader.Element("ModuleName").Value; assemblies.Add(id, name); } } diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageSequencePoint.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageSequencePoint.cs index f690fee695..4666eeacb7 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageSequencePoint.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageSequencePoint.cs @@ -2,7 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.Xml; +using System.Xml.Linq; namespace ICSharpCode.CodeCoverage { @@ -25,28 +25,28 @@ namespace ICSharpCode.CodeCoverage this.Column = column; this.EndLine = endLine; this.EndColumn = endColumn; - this.Length = length; + this.Length = 1; } - public CodeCoverageSequencePoint(string document, XmlReader reader) + public CodeCoverageSequencePoint(string document, XElement reader) { this.Document = document; Read(reader); } - void Read(XmlReader reader) + void Read(XElement reader) { - VisitCount = GetInteger(reader, "visit"); + VisitCount = GetInteger(reader, "vc"); Line = GetInteger(reader, "sl"); Column = GetInteger(reader, "sc"); EndLine = GetInteger(reader, "el"); EndColumn = GetInteger(reader, "ec"); - Length = GetInteger(reader, "len"); + Length = 1; // TODO: need to find a way to get this. GetInteger(reader, "len"); } - int GetInteger(XmlReader reader, string attributeName) + int GetInteger(XElement reader, string attributeName) { - string attributeValue = reader.GetAttribute(attributeName); + string attributeValue = reader.Attribute(attributeName).Value; return GetInteger(attributeValue); } diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs index 9d7d09e628..a932555057 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs @@ -14,8 +14,8 @@ namespace ICSharpCode.CodeCoverage { UnitTestingOptions options; IFileSystem fileSystem; - PartCoverApplication partCoverApplication; - PartCoverSettingsFactory settingsFactory; + OpenCoverApplication partCoverApplication; + OpenCoverSettingsFactory settingsFactory; public CodeCoverageTestRunner() : this(new CodeCoverageTestRunnerContext()) @@ -27,7 +27,7 @@ namespace ICSharpCode.CodeCoverage { this.options = context.Options; this.fileSystem = context.CodeCoverageFileSystem; - settingsFactory = new PartCoverSettingsFactory(fileSystem); + settingsFactory = new OpenCoverSettingsFactory(fileSystem); } public bool HasCodeCoverageResults() @@ -66,8 +66,8 @@ namespace ICSharpCode.CodeCoverage NUnitConsoleApplication nunitConsoleApp = new NUnitConsoleApplication(selectedTests, options); nunitConsoleApp.Results = base.TestResultsMonitor.FileName; - PartCoverSettings settings = settingsFactory.CreatePartCoverSettings(selectedTests.Project); - partCoverApplication = new PartCoverApplication(nunitConsoleApp, settings); + OpenCoverSettings settings = settingsFactory.CreateOpenCoverSettings(selectedTests.Project); + partCoverApplication = new OpenCoverApplication(nunitConsoleApp, settings); } void RemoveExistingCodeCoverageResultsFile() diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverApplication.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverApplication.cs similarity index 74% rename from src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverApplication.cs rename to src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverApplication.cs index 2c28eb5cf6..51968b6121 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverApplication.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverApplication.cs @@ -12,14 +12,14 @@ using ICSharpCode.UnitTesting; namespace ICSharpCode.CodeCoverage { - public class PartCoverApplication + public class OpenCoverApplication { string fileName = String.Empty; NUnitConsoleApplication nunitConsoleApp; - PartCoverSettings settings; + OpenCoverSettings settings; StringBuilder arguments; - public PartCoverApplication(string fileName, NUnitConsoleApplication nunitConsoleApp, PartCoverSettings settings) + public OpenCoverApplication(string fileName, NUnitConsoleApplication nunitConsoleApp, OpenCoverSettings settings) { this.fileName = fileName; this.nunitConsoleApp = nunitConsoleApp; @@ -30,18 +30,18 @@ namespace ICSharpCode.CodeCoverage } } - public PartCoverApplication(NUnitConsoleApplication nunitConsoleApp, PartCoverSettings settings) + public OpenCoverApplication(NUnitConsoleApplication nunitConsoleApp, OpenCoverSettings settings) : this(null, nunitConsoleApp, settings) { } void GetPartCoverApplicationFileName() { - fileName = Path.Combine(FileUtility.ApplicationRootPath, @"bin\Tools\PartCover\PartCover.exe"); + fileName = Path.Combine(FileUtility.ApplicationRootPath, @"bin\Tools\OpenCover\OpenCover.Console.exe"); fileName = Path.GetFullPath(fileName); } - public PartCoverSettings Settings { + public OpenCoverSettings Settings { get { return settings; } } @@ -76,7 +76,7 @@ namespace ICSharpCode.CodeCoverage string GetOutputDirectory(IProject project) { - return Path.Combine(project.Directory, "PartCover"); + return Path.Combine(project.Directory, "OpenCover"); } public ProcessStartInfo GetProcessStartInfo() @@ -89,37 +89,44 @@ namespace ICSharpCode.CodeCoverage string GetArguments() { - arguments = new StringBuilder(); + // IMPORTANT: https://github.com/sawilde/opencover/wiki/Usage + arguments = new StringBuilder("-register:user "); AppendTarget(); AppendTargetWorkingDirectory(); AppendTargetArguments(); AppendCodeCoverageResultsFileName(); - AppendIncludedItems(); - AppendExcludedItems(); - + AppendFilter(); return arguments.ToString().Trim(); } void AppendTarget() { - arguments.AppendFormat("--target \"{0}\" ", Target); + arguments.AppendFormat("-target:\"{0}\" ", Target); } void AppendTargetWorkingDirectory() { - arguments.AppendFormat("--target-work-dir \"{0}\" ", GetTargetWorkingDirectory()); + arguments.AppendFormat("-targetdir:\"{0}\" ", GetTargetWorkingDirectory()); } void AppendTargetArguments() { string targetArguments = GetTargetArguments(); - arguments.AppendFormat("--target-args \"{0}\" ", targetArguments.Replace("\"", "\\\"")); + arguments.AppendFormat("-targetargs:\"{0}\" ", targetArguments.Replace("\"", "\\\"")); } void AppendCodeCoverageResultsFileName() { - arguments.AppendFormat("--output \"{0}\" ", CodeCoverageResultsFileName); + arguments.AppendFormat("-output:\"{0}\" ", CodeCoverageResultsFileName); + } + + void AppendFilter() + { + arguments.Append("-filter:\""); + AppendIncludedItems(); + AppendExcludedItems(); + arguments.Append("\""); } void AppendIncludedItems() @@ -128,13 +135,13 @@ namespace ICSharpCode.CodeCoverage if (includedItems.Count == 0) { includedItems.Add("[*]*"); } - AppendItems("--include", includedItems); + AppendItems("+", includedItems); } void AppendExcludedItems() { AppendEmptySpace(); - AppendItems("--exclude", settings.Exclude); + AppendItems("-", settings.Exclude); } void AppendEmptySpace() @@ -152,7 +159,7 @@ namespace ICSharpCode.CodeCoverage { StringBuilder itemArgs = new StringBuilder(); foreach (string item in items) { - itemArgs.AppendFormat("{0} {1} ", optionName, item); + itemArgs.AppendFormat("{0}{1} ", optionName, item); } return itemArgs.ToString().Trim(); } diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverSettings.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettings.cs similarity index 80% rename from src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverSettings.cs rename to src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettings.cs index 83b831f844..16f141af69 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverSettings.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettings.cs @@ -12,43 +12,43 @@ using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.CodeCoverage { /// - /// File that stores PartCover settings. This file has the same format as - /// PartCover requires, but is actually just used by the Code Coverage addin + /// File that stores OpenCover settings. This file has the same format as + /// OpenCover requires, but is actually just used by the Code Coverage addin /// as a place to store the include and exclude regular expressions that the /// user may set up on a per project basis. /// - public class PartCoverSettings + public class OpenCoverSettings { - static readonly string RootElementName = "PartCoverSettings"; + static readonly string RootElementName = "OpenCoverSettings"; static readonly string RuleElementName = "Rule"; StringCollection include = new StringCollection(); StringCollection exclude = new StringCollection(); - public PartCoverSettings() + public OpenCoverSettings() { } - public PartCoverSettings(string fileName) + public OpenCoverSettings(string fileName) : this(new StreamReader(fileName, true)) { } - public PartCoverSettings(XmlReader reader) + public OpenCoverSettings(XmlReader reader) { ReadSettings(reader); } - public PartCoverSettings(TextReader reader) + public OpenCoverSettings(TextReader reader) : this(new XmlTextReader(reader)) { } /// - /// Gets the NCover settings filename for the specified project. + /// Gets the OpenCover settings filename for the specified project. /// public static string GetFileName(IProject project) { - return Path.ChangeExtension(project.FileName, "PartCover.Settings"); + return Path.ChangeExtension(project.FileName, "OpenCover.Settings"); } /// @@ -66,7 +66,7 @@ namespace ICSharpCode.CodeCoverage } /// - /// Writes the PartCover settings to the specified text writer. + /// Writes the OpenCover settings to the specified text writer. /// public void Save(TextWriter writer) { @@ -74,7 +74,7 @@ namespace ICSharpCode.CodeCoverage } /// - /// Saves the PartCover settings to the specified file. + /// Saves the OpenCover settings to the specified file. /// public void Save(string fileName) { @@ -82,7 +82,7 @@ namespace ICSharpCode.CodeCoverage } /// - /// Writes the PartCover settings to the specified XmlTextWriter. + /// Writes the OpenCover settings to the specified XmlTextWriter. /// public void Save(XmlTextWriter writer) { @@ -98,7 +98,7 @@ namespace ICSharpCode.CodeCoverage /// /// Reads the include and exclude regular expressions from the - /// PartCover settings xml. + /// OpenCover settings xml. /// void ReadSettings(XmlReader reader) { diff --git a/src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverSettingsFactory.cs b/src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettingsFactory.cs similarity index 55% rename from src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverSettingsFactory.cs rename to src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettingsFactory.cs index f613482d15..2670304a21 100644 --- a/src/AddIns/Analysis/CodeCoverage/Project/Src/PartCoverSettingsFactory.cs +++ b/src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettingsFactory.cs @@ -7,33 +7,33 @@ using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.CodeCoverage { - public class PartCoverSettingsFactory + public class OpenCoverSettingsFactory { IFileSystem fileSystem; - public PartCoverSettingsFactory(IFileSystem fileSystem) + public OpenCoverSettingsFactory(IFileSystem fileSystem) { this.fileSystem = fileSystem; } - public PartCoverSettingsFactory() + public OpenCoverSettingsFactory() : this(new FileSystem()) { } - public PartCoverSettings CreatePartCoverSettings(IProject project) + public OpenCoverSettings CreateOpenCoverSettings(IProject project) { - string fileName = PartCoverSettings.GetFileName(project); + string fileName = OpenCoverSettings.GetFileName(project); if (fileSystem.FileExists(fileName)) { - return CreatePartCoverSettingsFromFile(fileName); + return CreateOpenCoverSettingsFromFile(fileName); } - return new PartCoverSettings(); + return new OpenCoverSettings(); } - PartCoverSettings CreatePartCoverSettingsFromFile(string fileName) + OpenCoverSettings CreateOpenCoverSettingsFromFile(string fileName) { TextReader reader = fileSystem.CreateTextReader(fileName); - return new PartCoverSettings(reader); + return new OpenCoverSettings(reader); } } } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj b/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj index 2457f774b0..ca2bf2593c 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj +++ b/src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj @@ -51,6 +51,9 @@ False + + 3.5 + 3.0 @@ -69,9 +72,9 @@ - - - + + + @@ -88,7 +91,7 @@ - + @@ -96,7 +99,9 @@ - + + Component + @@ -135,13 +140,7 @@ ICSharpCode.SharpDevelop.Dom - - - - - - - + UnitTesting.dll diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs index db71bf28f7..40ee6e9a0b 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsMissingFileIdTestFixture.cs @@ -20,26 +20,55 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage [SetUp] public void SetUpFixture() { - string xml = "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - "\r\n" + - "\r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - "\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\MyTests\\bin\\nunit.framework.DLL\r\n" + + "\t\t\tnunit.framework\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tNUnit.Framework.NotEqualAsserter\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Boolean NUnit.Framework.NotEqualAsserter::Fail()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\MyTests\\bin\\MyTests.DLL\r\n" + + "\t\t\tMyTests.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tMyTests.Tests.MyClass\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void MyTests.Tests.MyClass::.ctor()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; base.CreateCodeCoverageResults(xml); } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs index 3b9196304b..e7d08c88ba 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsPropertyFlagsTestFixture.cs @@ -19,37 +19,75 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void SetUpFixture() { string xml = - "\r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - ""; - + "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\MyTests\\bin\\MyTests.DLL\r\n" + + "\t\t\tMyTests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tMyTests.Class1\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void MyTests.MyClass1::set_Count(System.Int32)\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Int32 MyTests.MyClass1::get_Count())\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void MyTests.MyClass1::get_NotAProperty())\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void MyTests.Tests.MyClass::PropertyFlagsButJustAMethod()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void MyTests.Tests.MyClass::InvalidFlags()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; + base.CreateCodeCoverageResults(xml); } @@ -57,7 +95,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void MethodName_GetterMethod_ReturnsExpectedGetterName() { string name = GetterMethod.Name; - string expectedName = "get_Count"; + string expectedName = "System.Int32 MyTests.MyClass1::get_Count())"; Assert.AreEqual(expectedName, name); } @@ -76,7 +114,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void MethodName_NameOfMethodWithPropertyFlagsButInvalidName_ReturnsMethodName() { string name = MethodWithPropertyFlagsButInvalidName.Name; - string expectedName = "PropertyFlagsButJustAMethod"; + string expectedName = "System.Void MyTests.Tests.MyClass::PropertyFlagsButJustAMethod()"; Assert.AreEqual(expectedName, name); } @@ -88,7 +126,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void MethodName_SetterMethod_ReturnsSetterMethodName() { string name = SetterMethod.Name; - string expectedName = "set_Count"; + string expectedName = "System.Void MyTests.MyClass1::set_Count(System.Int32)"; Assert.AreEqual(expectedName, name); } @@ -107,7 +145,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void MethodName_OrdinaryMethod_ReturnsMethodName() { string name = OrdinaryMethod.Name; - string expectedName = "get_NotAProperty"; + string expectedName = "System.Void MyTests.MyClass1::get_NotAProperty())"; Assert.AreEqual(expectedName, name); } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs index 197a442c0d..853ede24fb 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsTestFixture.cs @@ -14,18 +14,35 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage [TestFixtureSetUp] public void SetUpFixture() { - string xml = - "\r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - ""; + string xml = + "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; base.CreateCodeCoverageResults(xml); } @@ -56,7 +73,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void MethodName_ModuleHasOneMethod_ReturnsExpectedMethodName() { string name = FirstModuleFirstMethod.Name; - string expectedName = "SimpleTest"; + string expectedName = "System.Void Foo.Tests.FooTestFixture::SimpleTest()"; Assert.AreEqual(expectedName, name); } @@ -101,7 +118,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage point.EndColumn = 4; point.Line = 20; point.EndLine = 20; - point.Length = 2; + point.Length = 1; Assert.AreEqual(point, FirstModuleFirstMethodFirstSequencePoint); } @@ -138,14 +155,14 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void GetVisitedCodeLength_FirstMethod_ReturnsSummedLengthOfVisitedSequencePoints() { int length = FirstModuleFirstMethod.GetVisitedCodeLength(); - Assert.AreEqual(3, length); + Assert.AreEqual(2, length); } [Test] public void GetUnvisitedCodeLength_FirstMethod_ReturnsSummedLengthOfUnvisitedSequencePoints() { int length = FirstModuleFirstMethod.GetUnvisitedCodeLength(); - Assert.AreEqual(4, length); + Assert.AreEqual(1, length); } } } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs index 22dd4644dc..0e7e076195 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/CodeCoverageResultsWithEmptyMethodElementTestFixture.cs @@ -14,14 +14,30 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage [TestFixtureSetUp] public void SetUpFixture() { - string xml = - "\r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - ""; + string xml = + "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::.SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; base.CreateCodeCoverageResults(xml); } @@ -37,7 +53,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void MethodUnvisitedCodeLength_MethodWithNoSequencePoints_ReturnsBodySize() { int unvisitedCodeLength = FirstModuleFirstMethod.GetUnvisitedCodeLength(); - int expectedUnvisitedCodeLength = 42; + int expectedUnvisitedCodeLength = 0; Assert.AreEqual(expectedUnvisitedCodeLength, unvisitedCodeLength); } } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/GetSequencePointsForFileNameTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/GetSequencePointsForFileNameTestFixture.cs index 98d4f2cbf4..db41022a4e 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/GetSequencePointsForFileNameTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/GetSequencePointsForFileNameTestFixture.cs @@ -15,34 +15,82 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage [SetUp] public void SetUpFixture() { - string xml = - "\r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - ""; + string xml = + "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::FooTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.SimpleTestFixture2\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.SimpleTestFixture2::SimpleTest2()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.SimpleTestFixture3\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.SimpleTestFixture3::SimpleTest3()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Bar.Tests.DLL\r\n" + + "\t\t\tBar.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.BarTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.BarTestFixture::.SimpleTest2()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; base.CreateCodeCoverageResults(xml); } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/InvalidSequencePointDataTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/InvalidSequencePointDataTestFixture.cs index 44e26fb473..33bc3eb9cf 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/InvalidSequencePointDataTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/InvalidSequencePointDataTestFixture.cs @@ -15,22 +15,49 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage [TestFixtureSetUp] public void SetUpFixture() { - string xml = - "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = + "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::InvalidVisitCount()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::InvalidLine()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::InvalidColumn()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; base.CreateCodeCoverageResults(xml); } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/ModuleVisitedSequencePointsTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/ModuleVisitedSequencePointsTestFixture.cs index bc624a4656..c1c522e550 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/ModuleVisitedSequencePointsTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/ModuleVisitedSequencePointsTestFixture.cs @@ -14,35 +14,75 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage [TestFixtureSetUp] public void SetUpFixture() { - string xml = - "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = + "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture1\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest1()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture2\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture2::SimpleTest2()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Bar.Tests.DLL\r\n" + + "\t\t\tBar.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture3\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.BarTestFixture::.SimpleTest3()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; base.CreateCodeCoverageResults(xml); } @@ -59,7 +99,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void ModuleGetVisitedCodeLength_FooModule_ReturnsTotalLengthOfAllVisitedMethodSequencePoints() { int length = FooModule.GetVisitedCodeLength(); - int expectedLength = 9; + int expectedLength = 4; Assert.AreEqual(expectedLength, length); } @@ -67,7 +107,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void ModuleGetUnvisitedCodeLength_FooModule_ReturnsTotalLengthOfAllNonVisitedMethodSequencePoints() { int length = FooModule.GetUnvisitedCodeLength(); - int expectedLength = 3; + int expectedLength = 2; Assert.AreEqual(expectedLength, length); } @@ -75,7 +115,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void ModuleGetVisitedCodeLength_BarModule_ReturnsTotalLengthOfAllVisitedMethodSequencePoints() { int length = BarModule.GetVisitedCodeLength(); - int expectedLength = 11; + int expectedLength = 2; Assert.AreEqual(expectedLength, length); } @@ -83,7 +123,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void ModuleGetUnvisitedCodeLength_BarModule_ReturnsTotalLengthOfAllNonVisitedMethodSequencePoints() { int length = BarModule.GetUnvisitedCodeLength(); - int expectedLength = 4; + int expectedLength = 1; Assert.AreEqual(expectedLength, length); } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsFactoryTests.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsFactoryTests.cs similarity index 54% rename from src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsFactoryTests.cs rename to src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsFactoryTests.cs index 32ceb85ee9..362e5bf159 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsFactoryTests.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsFactoryTests.cs @@ -12,10 +12,10 @@ using UnitTesting.Tests.Utils; namespace ICSharpCode.CodeCoverage.Tests.Coverage { [TestFixture] - public class PartCoverSettingsFactoryTests + public class OpenCoverSettingsFactoryTests { - PartCoverSettingsFactory factory; - PartCoverSettings partCoverSettings; + OpenCoverSettingsFactory factory; + OpenCoverSettings openCoverSettings; MockCSharpProject project; MockFileSystem fileSystem; @@ -23,38 +23,38 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage public void Init() { fileSystem = new MockFileSystem(); - factory = new PartCoverSettingsFactory(fileSystem); + factory = new OpenCoverSettingsFactory(fileSystem); project = new MockCSharpProject(); } [Test] - public void CreatePartCoverSettingsWhenFileDoesNotExistCreatesSettingsWithNoPartCoverIncludes() + public void CreateOpenCoverSettingsWhenFileDoesNotExistCreatesSettingsWithNoPartCoverIncludes() { fileSystem.FileExistsReturnValue = false; - CreatePartCoverSettingsFromFactory(); - Assert.AreEqual(0, partCoverSettings.Include.Count); + CreateOpenCoverSettingsFromFactory(); + Assert.AreEqual(0, openCoverSettings.Include.Count); } - void CreatePartCoverSettingsFromFactory() + void CreateOpenCoverSettingsFromFactory() { - partCoverSettings = factory.CreatePartCoverSettings(project); + openCoverSettings = factory.CreateOpenCoverSettings(project); } [Test] - public void CreatePartCoverSettingsWhenFileExistsCreatesSettingsFromFile() + public void CreateOpenCoverSettingsWhenFileExistsCreatesSettingsFromFile() { - string partCoverSettingsXml = - "\r\n" + + string openCoverSettingsXml = + "\r\n" + " +test\r\n" + - ""; + ""; - StringReader reader = new StringReader(partCoverSettingsXml); + StringReader reader = new StringReader(openCoverSettingsXml); fileSystem.CreateTextReaderReturnValue = reader; fileSystem.FileExistsReturnValue = true; - CreatePartCoverSettingsFromFactory(); - Assert.AreEqual("test", partCoverSettings.Include[0]); + CreateOpenCoverSettingsFromFactory(); + Assert.AreEqual("test", openCoverSettings.Include[0]); } } } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsMissingRulePrefixTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsMissingRulePrefixTestFixture.cs similarity index 78% rename from src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsMissingRulePrefixTestFixture.cs rename to src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsMissingRulePrefixTestFixture.cs index 1823cb874d..912aaf144f 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsMissingRulePrefixTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsMissingRulePrefixTestFixture.cs @@ -13,19 +13,19 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage /// range exception when the Rule elements are empty strings. /// [TestFixture] - public class PartCoverSettingsMissingRulePrefixTestFixture + public class OpenCoverSettingsMissingRulePrefixTestFixture { - PartCoverSettings settings; + OpenCoverSettings settings; [TestFixtureSetUp] public void SetUpFixture() { - string xml = "\r\n" + + string xml = "\r\n" + " \r\n" + " \r\n" + - ""; + ""; - settings = new PartCoverSettings(new StringReader(xml)); + settings = new OpenCoverSettings(new StringReader(xml)); } [Test] diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsTestFixture.cs similarity index 80% rename from src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsTestFixture.cs rename to src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsTestFixture.cs index fd1d19bfa9..86f517bdd1 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsTestFixture.cs @@ -21,24 +21,24 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage /// that PartCover uses. /// [TestFixture] - public class PartCoverSettingsTestFixture + public class OpenCoverSettingsTestFixture { - PartCoverSettings settings; - PartCoverSettings savedSettings; + OpenCoverSettings settings; + OpenCoverSettings savedSettings; StringBuilder savedSettingsXml; XmlDocument doc; [SetUp] public void Init() { - settings = new PartCoverSettings(); + settings = new OpenCoverSettings(); settings.Include.Add("[a]*"); settings.Include.Add("[b]*"); settings.Exclude.Add("[c]*"); settings.Exclude.Add("[d]*"); savedSettingsXml = new StringBuilder(); settings.Save(new StringWriter(savedSettingsXml)); - savedSettings = new PartCoverSettings(new StringReader(savedSettingsXml.ToString())); + savedSettings = new OpenCoverSettings(new StringReader(savedSettingsXml.ToString())); doc = new XmlDocument(); doc.LoadXml(savedSettingsXml.ToString()); @@ -57,7 +57,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage } [Test] - public void PartCoverSettingsFileName() + public void OpenCoverSettingsFileName() { MSBuildBasedProject project = new MSBuildBasedProject( new ProjectCreateInformation { @@ -66,19 +66,19 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage ProjectName = "test" }); - Assert.AreEqual(@"C:\temp\test.PartCover.Settings", PartCoverSettings.GetFileName(project)); + Assert.AreEqual(@"C:\temp\test.OpenCover.Settings", OpenCoverSettings.GetFileName(project)); } [Test] public void FourRuleElements() { - Assert.AreEqual(4, doc.SelectNodes("/PartCoverSettings/Rule").Count); + Assert.AreEqual(4, doc.SelectNodes("/OpenCoverSettings/Rule").Count); } [Test] public void FirstRuleElement() { - Assert.IsNotNull(doc.SelectSingleNode("/PartCoverSettings/Rule[text()='+[a]*']")); + Assert.IsNotNull(doc.SelectSingleNode("/OpenCoverSettings/Rule[text()='+[a]*']")); } } } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/AddCodeCoverageMarkersTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/AddCodeCoverageMarkersTestFixture.cs index c2ebc604c1..92b83a700c 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/AddCodeCoverageMarkersTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/AddCodeCoverageMarkersTestFixture.cs @@ -35,17 +35,34 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting document.Text = code; markerStrategy = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService; - string xml = "\r\n" + - "\r\n" + - "\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter(); diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverMultipleLinesTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverMultipleLinesTestFixture.cs index e098840dd2..74307767a5 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverMultipleLinesTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverMultipleLinesTestFixture.cs @@ -41,17 +41,34 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting document.Text = code; ITextMarkerService markerStrategy = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService; - string xml = "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverTwoLinesTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverTwoLinesTestFixture.cs index c980ab6984..0ff441d886 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverTwoLinesTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersCoverTwoLinesTestFixture.cs @@ -35,17 +35,34 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting "\t\t}\r\n"; document.Text = code; - string xml = "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndColumnTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndColumnTestFixture.cs index 3aab4ab045..05b9f564d8 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndColumnTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndColumnTestFixture.cs @@ -29,18 +29,35 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting ITextMarkerService markerStrategy = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService; document.Text = "abcdefg\r\nabc"; - string xml = "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndLineTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndLineTestFixture.cs index 35a180b301..1869cc2781 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndLineTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidEndLineTestFixture.cs @@ -30,17 +30,35 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting // Give doc 3 lines (end line seems to be counted as an extra line). document.Text = "abc\r\ndef"; - string xml = "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartColumnTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartColumnTestFixture.cs index 025ff65799..e54aa1aed0 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartColumnTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartColumnTestFixture.cs @@ -29,17 +29,34 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting ITextMarkerService markerStrategy = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService; document.Text = "abcdefg\r\nabcdefg"; - string xml = "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartLineTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartLineTestFixture.cs index 81d1f5a058..ca69f3ca9f 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartLineTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/CodeCoverageMarkersInvalidStartLineTestFixture.cs @@ -28,17 +28,34 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting IDocument document = MockTextMarkerService.CreateDocumentWithMockService(); ITextMarkerService markerStrategy = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService; - string xml = "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/RemoveCodeCoverageMarkersTestFixture.cs b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/RemoveCodeCoverageMarkersTestFixture.cs index 99735c3ab9..8ae070a92b 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/RemoveCodeCoverageMarkersTestFixture.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Highlighting/RemoveCodeCoverageMarkersTestFixture.cs @@ -33,17 +33,34 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting "\t\t}\r\n"; document.Text = code; - string xml = "\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\r\n" + - "\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\t\r\n" + - "\t\t\r\n" + - "\t\r\n" + - ""; + string xml = "\r\n" + + "\t\r\n" + + "\t\t\r\n" + + "\t\t\tC:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\r\n" + + "\t\t\tFoo.Tests\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\t\tFoo.Tests.FooTestFixture\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t100663297\r\n" + + "\t\t\t\t\t\t\tSystem.Void Foo.Tests.FooTestFixture::SimpleTest()\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\t\r\n" + + "\t\t\t\t\t\r\n" + + "\t\t\t\t\r\n" + + "\t\t\t\r\n" + + "\t\t\r\n" + + "\t\r\n" + + ""; CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageMethod method = results.Modules[0].Methods[0]; CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter(); diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs b/src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs index a0f2da9c78..9f2a8b7088 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs @@ -79,7 +79,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing testRunner.HasCodeCoverageResults(); string expectedFileName = - @"c:\projects\MyTests\PartCover\coverage.xml"; + @"c:\projects\MyTests\OpenCover\coverage.xml"; Assert.AreEqual(expectedFileName, fileSystem.FileExistsPathParameter); } @@ -96,7 +96,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing testRunner.ReadCodeCoverageResults(); string expectedFileName = - @"c:\projects\MyTests\PartCover\coverage.xml"; + @"c:\projects\MyTests\OpenCover\coverage.xml"; Assert.AreEqual(expectedFileName, fileSystem.CreateTextReaderPathParameter); } @@ -116,18 +116,18 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing ProcessStartInfo processStartInfo = testRunner.CallGetProcessStartInfo(tests); string expectedCommandLine = - "--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + - "--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " + - "--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml /results=\\\"d:\\temp\\results.txt\\\"\" " + - "--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " + - "--include [MyTests]*"; + "-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + + "-targetdir:\"c:\\projects\\MyTests\\bin\\Debug\" " + + "-targetargs:\"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml /results=\\\"d:\\temp\\results.txt\\\"\" " + + "-output:\"c:\\projects\\MyTests\\OpenCover\\coverage.xml\" " + + "-filter:\"+[MyTests]* \""; Assert.AreEqual(expectedCommandLine, processStartInfo.Arguments); } TextReader CreatePartCoverSettingsTextReader() { - PartCoverSettings settings = new PartCoverSettings(); + OpenCoverSettings settings = new OpenCoverSettings(); settings.Include.Add("[MyTests]*"); StringBuilder text = new StringBuilder(); StringWriter writer = new StringWriter(text); @@ -151,7 +151,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing fileSystem.CreateTextReaderReturnValue = new StringReader(""); StartTestRunner(); - string expectedFileName = @"c:\projects\MyTests\PartCover\coverage.xml"; + string expectedFileName = @"c:\projects\MyTests\OpenCover\coverage.xml"; Assert.AreEqual(expectedFileName, fileSystem.DeleteFilePathParameter); } @@ -170,7 +170,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing fileSystem.DirectoryExistsReturnValue = false; StartTestRunner(); - string expectedDirectory = @"c:\projects\MyTests\PartCover"; + string expectedDirectory = @"c:\projects\MyTests\OpenCover"; Assert.AreEqual(expectedDirectory, fileSystem.CreateDirectoryPathParameter); } @@ -180,7 +180,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing fileSystem.DirectoryExistsReturnValue = true; StartTestRunner(); - string expectedDirectory = @"c:\projects\MyTests\PartCover"; + string expectedDirectory = @"c:\projects\MyTests\OpenCover"; Assert.AreEqual(expectedDirectory, fileSystem.DirectoryExistsPathParameter); } @@ -215,12 +215,12 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing string GetCodeCoverageCommandLine() { return - "\"d:\\sharpdevelop\\bin\\Tools\\PartCover\\PartCover.exe\" " + - "--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + - "--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " + - "--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " + - "--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " + - "--include [*]*"; + "\"d:\\sharpdevelop\\bin\\Tools\\OpenCover\\OpenCover.Console.exe\" -register:user " + + "-target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + + "-targetdir:\"c:\\projects\\MyTests\\bin\\Debug\" " + + "-targetargs:\"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " + + "-output:\"c:\\projects\\MyTests\\OpenCover\\coverage.xml\" " + + "-filter:\"+[*]* \""; } [Test] diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Testing/PartCoverApplicationTests.cs b/src/AddIns/Analysis/CodeCoverage/Test/Testing/OpenCoverApplicationTests.cs similarity index 59% rename from src/AddIns/Analysis/CodeCoverage/Test/Testing/PartCoverApplicationTests.cs rename to src/AddIns/Analysis/CodeCoverage/Test/Testing/OpenCoverApplicationTests.cs index 1f4c628ef4..0aabb90d85 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Testing/PartCoverApplicationTests.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Testing/OpenCoverApplicationTests.cs @@ -12,27 +12,27 @@ using UnitTesting.Tests.Utils; namespace ICSharpCode.CodeCoverage.Tests.Testing { [TestFixture] - public class PartCoverApplicationTests + public class OpenCoverApplicationTests { NUnitConsoleApplication nunitConsoleApp; SelectedTests selectedTests; UnitTestingOptions options; - PartCoverApplication partCoverApp; - PartCoverSettings partCoverSettings; + OpenCoverApplication openCoverApp; + OpenCoverSettings openCoverSettings; [Test] public void FileNameWhenPartCoverApplicationConstructedWithFileNameParameterMatchesFileNameParameter() { string expectedFileName = @"d:\projects\PartCover.exe"; - CreatePartCoverApplication(expectedFileName); - Assert.AreEqual(expectedFileName, partCoverApp.FileName); + CreateOpenCoverApplication(expectedFileName); + Assert.AreEqual(expectedFileName, openCoverApp.FileName); } - void CreatePartCoverApplication(string fileName) + void CreateOpenCoverApplication(string fileName) { CreateNUnitConsoleApplication(); - partCoverSettings = new PartCoverSettings(); - partCoverApp = new PartCoverApplication(fileName, nunitConsoleApp, partCoverSettings); + openCoverSettings = new OpenCoverSettings(); + openCoverApp = new OpenCoverApplication(fileName, nunitConsoleApp, openCoverSettings); } void CreateNUnitConsoleApplication() @@ -49,14 +49,14 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing { FileUtility.ApplicationRootPath = @"d:\sharpdevelop"; CreatePartCoverApplicationWithoutFileName(); - string expectedPath = @"d:\sharpdevelop\bin\Tools\PartCover\PartCover.exe"; - Assert.AreEqual(expectedPath, partCoverApp.FileName); + string expectedPath = @"d:\sharpdevelop\bin\Tools\OpenCover\OpenCover.Console.exe"; + Assert.AreEqual(expectedPath, openCoverApp.FileName); } void CreatePartCoverApplicationWithoutFileName() { CreateNUnitConsoleApplication(); - partCoverApp = new PartCoverApplication(nunitConsoleApp, new PartCoverSettings()); + openCoverApp = new OpenCoverApplication(nunitConsoleApp, new OpenCoverSettings()); } [Test] @@ -64,28 +64,28 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing { FileUtility.ApplicationRootPath = @"d:\sharpdevelop\..\sharpdevelop"; CreatePartCoverApplicationWithoutFileName(); - string expectedPath = @"d:\sharpdevelop\bin\Tools\PartCover\PartCover.exe"; - Assert.AreEqual(expectedPath, partCoverApp.FileName); + string expectedPath = @"d:\sharpdevelop\bin\Tools\OpenCover\OpenCover.Console.exe"; + Assert.AreEqual(expectedPath, openCoverApp.FileName); } [Test] public void TargetIsNUnitConsoleApplicationFileName() { CreatePartCoverApplication(); - Assert.AreEqual(nunitConsoleApp.FileName, partCoverApp.Target); + Assert.AreEqual(nunitConsoleApp.FileName, openCoverApp.Target); } void CreatePartCoverApplication() { string fileName = @"d:\partcover\PartCover.exe"; - CreatePartCoverApplication(fileName); + CreateOpenCoverApplication(fileName); } [Test] public void GetTargetArgumentsReturnsNUnitConsoleApplicationCommandLineArguments() { CreatePartCoverApplication(); - Assert.AreEqual(nunitConsoleApp.GetArguments(), partCoverApp.GetTargetArguments()); + Assert.AreEqual(nunitConsoleApp.GetArguments(), openCoverApp.GetTargetArguments()); } [Test] @@ -93,7 +93,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing { CreatePartCoverApplication(); string expectedTargetWorkingDirectory = @"c:\projects\MyTests\bin\Debug"; - Assert.AreEqual(expectedTargetWorkingDirectory, partCoverApp.GetTargetWorkingDirectory()); + Assert.AreEqual(expectedTargetWorkingDirectory, openCoverApp.GetTargetWorkingDirectory()); } [Test] @@ -101,24 +101,24 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing { CreatePartCoverApplication(); string expectedOutputDirectory = - @"c:\projects\MyTests\PartCover\coverage.xml"; + @"c:\projects\MyTests\OpenCover\coverage.xml"; - Assert.AreEqual(expectedOutputDirectory, partCoverApp.CodeCoverageResultsFileName); + Assert.AreEqual(expectedOutputDirectory, openCoverApp.CodeCoverageResultsFileName); } [Test] public void SettingsReturnsPartCoverSettingsPassedToConstructor() { CreatePartCoverApplication(); - Assert.AreEqual(partCoverSettings, partCoverApp.Settings); + Assert.AreEqual(openCoverSettings, openCoverApp.Settings); } [Test] public void GetProcessStartInfoReturnsStartInfoWhereFileNameIsPartCoverAppFileName() { string partCoverAppFileName = @"d:\projects\partcover.exe"; - CreatePartCoverApplication(partCoverAppFileName); - ProcessStartInfo processStartInfo = partCoverApp.GetProcessStartInfo(); + CreateOpenCoverApplication(partCoverAppFileName); + ProcessStartInfo processStartInfo = openCoverApp.GetProcessStartInfo(); Assert.AreEqual(partCoverAppFileName, processStartInfo.FileName); } @@ -128,14 +128,14 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing { FileUtility.ApplicationRootPath = @"d:\sharpdevelop"; CreatePartCoverApplication(); - ProcessStartInfo processStartInfo = partCoverApp.GetProcessStartInfo(); + ProcessStartInfo processStartInfo = openCoverApp.GetProcessStartInfo(); string expectedCommandLine = - "--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + - "--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " + - "--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " + - "--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " + - "--include [*]*"; + "-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + + "-targetdir:\"c:\\projects\\MyTests\\bin\\Debug\" " + + "-targetargs:\"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " + + "-output:\"c:\\projects\\MyTests\\OpenCover\\coverage.xml\" " + + "-filter:\"+[*]* \""; Assert.AreEqual(expectedCommandLine, processStartInfo.Arguments); } @@ -146,23 +146,23 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing FileUtility.ApplicationRootPath = @"d:\sharpdevelop"; CreatePartCoverApplication(); - partCoverSettings.Include.Add("[MyTests]*"); - partCoverSettings.Include.Add("[MoreTests]*"); + openCoverSettings.Include.Add("[MyTests]*"); + openCoverSettings.Include.Add("[MoreTests]*"); - partCoverSettings.Exclude.Add("[NUnit.Framework]*"); - partCoverSettings.Exclude.Add("[MyProject]*"); + openCoverSettings.Exclude.Add("[NUnit.Framework]*"); + openCoverSettings.Exclude.Add("[MyProject]*"); - ProcessStartInfo processStartInfo = partCoverApp.GetProcessStartInfo(); + ProcessStartInfo processStartInfo = openCoverApp.GetProcessStartInfo(); string expectedCommandLine = - "--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + - "--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " + - "--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " + - "--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " + - "--include [MyTests]* " + - "--include [MoreTests]* " + - "--exclude [NUnit.Framework]* " + - "--exclude [MyProject]*"; + "-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + + "-targetdir:\"c:\\projects\\MyTests\\bin\\Debug\" " + + "-targetargs:\"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " + + "-output:\"c:\\projects\\MyTests\\OpenCover\\coverage.xml\" " + + "-filter:\"+[MyTests]* " + + "+[MoreTests]* " + + "-[NUnit.Framework]* " + + "-[MyProject]*\""; Assert.AreEqual(expectedCommandLine, processStartInfo.Arguments); } diff --git a/src/AddIns/Analysis/CodeCoverage/Test/Testing/RunTestWithCodeCoverageCommandTests.cs b/src/AddIns/Analysis/CodeCoverage/Test/Testing/RunTestWithCodeCoverageCommandTests.cs index 8352e0c4b6..b15b728dad 100644 --- a/src/AddIns/Analysis/CodeCoverage/Test/Testing/RunTestWithCodeCoverageCommandTests.cs +++ b/src/AddIns/Analysis/CodeCoverage/Test/Testing/RunTestWithCodeCoverageCommandTests.cs @@ -3,9 +3,6 @@ using System; using System.IO; -using System.Text; -using ICSharpCode.CodeCoverage; -using ICSharpCode.Core; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.UnitTesting; @@ -189,15 +186,32 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing TextReader CreateCodeCoverageResultsTextReader() { string xml = - "\r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - " \r\n" + - ""; + "\r\n" + + " \r\n" + + " \r\n" + + " C:\\Projects\\MyTests\\bin\\MyTests.DLL\r\n" + + " MyTests\r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " MyTests.Tests.MyTestFixture\r\n" + + " \r\n" + + " \r\n" + + " 100663297\r\n" + + " System.Void MyTests.Tests.MyTestFixture::SimpleTest1()\r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + " \r\n" + + ""; return new StringReader(xml); } @@ -245,7 +259,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing ActionArguments args = CreateTestRunnerAndFirePartCoverProcessExitEventWhenNoCoverageFileProduced(); Task task = args.Arg; - string description = @"No code coverage results file generated. c:\projects\MyTests\PartCover\coverage.xml"; + string description = @"No code coverage results file generated. c:\projects\MyTests\OpenCover\coverage.xml"; int column = 1; int line = 1; Task expectedTask = new Task(null, description, column, line, TaskType.Error); diff --git a/src/Tools/OpenCover/Gendarme.Framework.dll b/src/Tools/OpenCover/Gendarme.Framework.dll new file mode 100644 index 0000000000..1b795d1db6 Binary files /dev/null and b/src/Tools/OpenCover/Gendarme.Framework.dll differ diff --git a/src/Tools/OpenCover/Gendarme.Rules.Maintainability.dll b/src/Tools/OpenCover/Gendarme.Rules.Maintainability.dll new file mode 100644 index 0000000000..0213771366 Binary files /dev/null and b/src/Tools/OpenCover/Gendarme.Rules.Maintainability.dll differ diff --git a/src/Tools/OpenCover/License.rtf b/src/Tools/OpenCover/License.rtf new file mode 100644 index 0000000000..0916f4d611 --- /dev/null +++ b/src/Tools/OpenCover/License.rtf @@ -0,0 +1,166 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang3081\deflangfe3081\themelang3081\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f379\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f380\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} +{\f382\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f383\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f386\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f387\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);} +{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f417\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;}{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;} +{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;}{\fhimajor\f31536\fbidi \froman\fcharset163\fprq2 Cambria (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} +{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0; +\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp +\f31506\fs22\lang3081\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive +\ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}} +{\*\rsidtbl \rsid11275983\rsid14818796\rsid15367925\rsid16724145}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Shaun}{\operator Shaun} +{\creatim\yr2012\mo1\dy5\hr7\min52}{\revtim\yr2012\mo2\dy21\hr8\min10}{\version3}{\edmins2}{\nofpages1}{\nofwords157}{\nofchars900}{\*\company Microsoft}{\nofcharsws1055}{\vern49273}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/word +ml}}\paperw11906\paperh16838\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen +\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale60\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot15367925\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid14818796 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang3081\langfe1033\cgrid\langnp3081\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14818796 Copyright (c) 2011}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid16724145 -2012}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid14818796 Shaun Wilde +\par Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is fu +rnished to do so, subject to the following conditions: +\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +\par THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid11275983 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210030dd4329a8060000a41b0000160000007468656d652f7468656d652f +7468656d65312e786d6cec594f6fdb3614bf0fd87720746f6327761a07758ad8b19b2d4d1bc46e871e698996d850a240d2497d1bdae38001c3ba618715d86d87 +615b8116d8a5fb34d93a6c1dd0afb0475292c5585e9236d88aad3e2412f9e3fbff1e1fa9abd7eec70c1d1221294fda5efd72cd4324f1794093b0eddd1ef62fad +79482a9c0498f184b4bd2991deb58df7dfbb8ad755446282607d22d771db8b944ad79796a40fc3585ee62949606ecc458c15bc8a702910f808e8c66c69b9565b +5d8a314d3c94e018c8de1a8fa94fd05093f43672e23d06af89927ac06762a049136785c10607758d9053d965021d62d6f6804fc08f86e4bef210c352c144dbab +999fb7b4717509af678b985ab0b6b4ae6f7ed9ba6c4170b06c788a705430adf71bad2b5b057d03606a1ed7ebf5babd7a41cf00b0ef83a6569632cd467faddec9 +699640f6719e76b7d6ac355c7c89feca9cccad4ea7d36c65b258a206641f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd586 +8b37a088d1e4600ead1ddaef67d40bc898b3ed4af81ac0d76a197c86826828a24bb318f3442d8ab518dfe3a20f000d6458d104a9694ac6d88728eee2782428d6 +0cf03ac1a5193be4cbb921cd0b495fd054b5bd0f530c1931a3f7eaf9f7af9e3f45c70f9e1d3ff8e9f8e1c3e3073f5a42ceaa6d9c84e5552fbffdeccfc71fa33f +9e7ef3f2d117d57859c6fffac327bffcfc793510d26726ce8b2f9ffcf6ecc98baf3efdfdbb4715f04d814765f890c644a29be408edf3181433567125272371be +15c308d3f28acd249438c19a4b05fd9e8a1cf4cd296699771c393ac4b5e01d01e5a30a787d72cf1178108989a2159c77a2d801ee72ce3a5c545a6147f32a9979 +3849c26ae66252c6ed637c58c5bb8b13c7bfbd490a75330f4b47f16e441c31f7184e140e494214d273fc80900aedee52ead87597fa824b3e56e82e451d4c2b4d +32a423279a668bb6690c7e9956e90cfe766cb37b077538abd27a8b1cba48c80acc2a841f12e698f13a9e281c57911ce298950d7e03aba84ac8c154f8655c4f2a +f074481847bd804859b5e696007d4b4edfc150b12addbecba6b18b148a1e54d1bc81392f23b7f84137c2715a851dd0242a633f900710a218ed715505dfe56e86 +e877f0034e16bafb0e258ebb4faf06b769e888340b103d331115bebc4eb813bf83291b63624a0d1475a756c734f9bbc2cd28546ecbe1e20a3794ca175f3fae90 +fb6d2dd99bb07b55e5ccf68942bd0877b23c77b908e8db5f9db7f024d9239010f35bd4bbe2fcae387bfff9e2bc289f2fbe24cfaa301468dd8bd846dbb4ddf1c2 +ae7b4c191ba8292337a469bc25ec3d411f06f53a73e224c5292c8de0516732307070a1c0660d125c7d44553488700a4d7bddd3444299910e254ab984c3a219ae +a4adf1d0f82b7bd46cea4388ad1c12ab5d1ed8e1153d9c9f350a3246aad01c6873462b9ac05999ad5cc988826eafc3acae853a33b7ba11cd1445875ba1b236b1 +399483c90bd560b0b0263435085a21b0f22a9cf9356b38ec6046026d77eba3dc2dc60b17e92219e180643ed27acffba86e9c94c7ca9c225a0f1b0cfae0788ad5 +4adc5a9aec1b703b8b93caec1a0bd8e5de7b132fe5113cf312503b998e2c2927274bd051db6b35979b1ef271daf6c6704e86c73805af4bdd476216c26593af84 +0dfb5393d964f9cc9bad5c313709ea70f561ed3ea7b053075221d51696910d0d339585004b34272bff7213cc7a510a5454a3b349b1b206c1f0af490176745d4b +c663e2abb2b34b23da76f6352ba57ca2881844c1111ab189d8c7e07e1daaa04f40255c77988aa05fe06e4e5bdb4cb9c5394bbaf28d98c1d971ccd20867e556a7 +689ec9166e0a522183792b8907ba55ca6e943bbf2a26e52f48957218ffcf54d1fb09dc3eac04da033e5c0d0b8c74a6b43d2e54c4a10aa511f5fb021a07533b20 +5ae07e17a621a8e082dafc17e450ffb739676998b48643a4daa7211214f623150942f6a02c99e83b85583ddbbb2c4996113211551257a656ec1139246ca86be0 +aadedb3d1441a89b6a929501833b197fee7b9641a3503739e57c732a59b1f7da1cf8a73b1f9bcca0945b874d4393dbbf10b1680f66bbaa5d6f96e77b6f59113d +316bb31a795600b3d256d0cad2fe354538e7566b2bd69cc6cbcd5c38f0e2bcc63058344429dc2121fd07f63f2a7c66bf76e80d75c8f7a1b622f878a18941d840 +545fb28d07d205d20e8ea071b283369834296bdaac75d256cb37eb0bee740bbe278cad253b8bbfcf69eca23973d939b97891c6ce2cecd8da8e2d343578f6648a +c2d0383fc818c798cf64e52f597c740f1cbd05df0c264c49134cf09d4a60e8a107260f20f92d47b374e32f000000ffff0300504b030414000600080000002100 +0dd1909fb60000001b010000270000007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f7 +8277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89 +d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd500 +1996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0f +bfff0000001c0200001300000000000000000000000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6 +a7e7c0000000360100000b00000000000000000000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a +0000001c00000000000000000000000000190200007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d00140006000800000021 +0030dd4329a8060000a41b00001600000000000000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d001400060008 +00000021000dd1909fb60000001b0100002700000000000000000000000000b20900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000ad0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; +\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7; +\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000e00b +b50e14f0cc01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/src/Tools/OpenCover/Microsoft.Practices.Unity.dll b/src/Tools/OpenCover/Microsoft.Practices.Unity.dll new file mode 100644 index 0000000000..84f1870df0 Binary files /dev/null and b/src/Tools/OpenCover/Microsoft.Practices.Unity.dll differ diff --git a/src/Tools/OpenCover/Mono.Cecil.Pdb.dll b/src/Tools/OpenCover/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000000..a917d34a10 Binary files /dev/null and b/src/Tools/OpenCover/Mono.Cecil.Pdb.dll differ diff --git a/src/Tools/OpenCover/Mono.Cecil.dll b/src/Tools/OpenCover/Mono.Cecil.dll new file mode 100644 index 0000000000..bd4773e13a Binary files /dev/null and b/src/Tools/OpenCover/Mono.Cecil.dll differ diff --git a/src/Tools/OpenCover/OpenCover.Console.exe b/src/Tools/OpenCover/OpenCover.Console.exe new file mode 100644 index 0000000000..714b22b3ae Binary files /dev/null and b/src/Tools/OpenCover/OpenCover.Console.exe differ diff --git a/src/Tools/OpenCover/OpenCover.Console.exe.config b/src/Tools/OpenCover/OpenCover.Console.exe.config new file mode 100644 index 0000000000..cf4f561e2c --- /dev/null +++ b/src/Tools/OpenCover/OpenCover.Console.exe.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Tools/OpenCover/OpenCover.Framework.dll b/src/Tools/OpenCover/OpenCover.Framework.dll new file mode 100644 index 0000000000..a324b191c8 Binary files /dev/null and b/src/Tools/OpenCover/OpenCover.Framework.dll differ diff --git a/src/Tools/OpenCover/log4net.config b/src/Tools/OpenCover/log4net.config new file mode 100644 index 0000000000..2e0d67f195 --- /dev/null +++ b/src/Tools/OpenCover/log4net.config @@ -0,0 +1,29 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Tools/OpenCover/log4net.dll b/src/Tools/OpenCover/log4net.dll new file mode 100644 index 0000000000..1e66c82abd Binary files /dev/null and b/src/Tools/OpenCover/log4net.dll differ diff --git a/src/Tools/OpenCover/x64/OpenCover.Profiler.dll b/src/Tools/OpenCover/x64/OpenCover.Profiler.dll new file mode 100644 index 0000000000..f862356bb0 Binary files /dev/null and b/src/Tools/OpenCover/x64/OpenCover.Profiler.dll differ diff --git a/src/Tools/OpenCover/x86/OpenCover.Profiler.dll b/src/Tools/OpenCover/x86/OpenCover.Profiler.dll new file mode 100644 index 0000000000..b44158c9b0 Binary files /dev/null and b/src/Tools/OpenCover/x86/OpenCover.Profiler.dll differ diff --git a/src/Tools/PartCover/Interop.PartCover.dll b/src/Tools/PartCover/Interop.PartCover.dll deleted file mode 100755 index d7b7a6d5df..0000000000 Binary files a/src/Tools/PartCover/Interop.PartCover.dll and /dev/null differ diff --git a/src/Tools/PartCover/PartCover.Framework.dll b/src/Tools/PartCover/PartCover.Framework.dll deleted file mode 100755 index fc33a48e2e..0000000000 Binary files a/src/Tools/PartCover/PartCover.Framework.dll and /dev/null differ diff --git a/src/Tools/PartCover/PartCover.dll b/src/Tools/PartCover/PartCover.dll deleted file mode 100644 index fa3b6ca28e..0000000000 Binary files a/src/Tools/PartCover/PartCover.dll and /dev/null differ diff --git a/src/Tools/PartCover/PartCover.exe b/src/Tools/PartCover/PartCover.exe deleted file mode 100755 index f98cc9c88a..0000000000 Binary files a/src/Tools/PartCover/PartCover.exe and /dev/null differ diff --git a/src/Tools/PartCover/PartCover.exe.config b/src/Tools/PartCover/PartCover.exe.config deleted file mode 100644 index b7d8d1dcdf..0000000000 --- a/src/Tools/PartCover/PartCover.exe.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/Tools/Tools.build b/src/Tools/Tools.build index f81ffa9af1..a5417e0513 100644 --- a/src/Tools/Tools.build +++ b/src/Tools/Tools.build @@ -11,7 +11,9 @@ - + + + @@ -31,7 +33,9 @@ - + + +