diff --git a/eng/Common.globalconfig b/eng/Common.globalconfig index fd878420d57..e38d296772e 100644 --- a/eng/Common.globalconfig +++ b/eng/Common.globalconfig @@ -283,7 +283,7 @@ dotnet_diagnostic.CA1823.severity = suggestion dotnet_diagnostic.CA1824.severity = warning # Avoid zero-length array allocations. -dotnet_diagnostic.CA1825.severity = suggestion +dotnet_diagnostic.CA1825.severity = warning # Do not use Count() or LongCount() when Any() can be used dotnet_diagnostic.CA1827.severity = suggestion diff --git a/src/Build.OM.UnitTests/Definition/ProjectItem_Tests.cs b/src/Build.OM.UnitTests/Definition/ProjectItem_Tests.cs index 515c657dfc0..1bd2d2e55de 100644 --- a/src/Build.OM.UnitTests/Definition/ProjectItem_Tests.cs +++ b/src/Build.OM.UnitTests/Definition/ProjectItem_Tests.cs @@ -893,7 +893,7 @@ public void IncludeAndExcludeWorkWithRelativeAndAbsolutePaths( var formattedProject = string.Format(projectContents, include, exclude); File.WriteAllText(projectFile, formattedProject); - var expectedInclude = includeSurvivesExclude ? new[] { include } : new string[0]; + var expectedInclude = includeSurvivesExclude ? new[] { include } : Array.Empty(); ObjectModelHelpers.AssertItems(expectedInclude, new Project(projectFile).Items.ToList()); } @@ -3425,7 +3425,7 @@ public static IEnumerable UpdateAndRemoveShouldWorkWithEscapedCharacte public void UpdateAndRemoveShouldWorkWithEscapedCharacters(string projectContents, string include, string update, string remove, string[] expectedInclude, Dictionary[] expectedMetadata) { var formattedProjectContents = string.Format(projectContents, include, update, remove); - ObjectModelHelpers.AssertItemEvaluationFromProject(formattedProjectContents, new string[0], expectedInclude, expectedMetadata); + ObjectModelHelpers.AssertItemEvaluationFromProject(formattedProjectContents, Array.Empty(), expectedInclude, expectedMetadata); } [Fact] @@ -3458,7 +3458,7 @@ public void UpdateAndRemoveShouldNotUseGlobMatchingOnEscapedGlobsFromReferencedI .ToList(); }, project, - inputFiles: new string[0], + inputFiles: Array.Empty(), expectedInclude: new[] { "1.cs", "2.js" }, expectedMetadataPerItem: null ); diff --git a/src/Build.OM.UnitTests/Definition/Project_Tests.cs b/src/Build.OM.UnitTests/Definition/Project_Tests.cs index 5dd7d583c19..4e057c5f5e9 100644 --- a/src/Build.OM.UnitTests/Definition/Project_Tests.cs +++ b/src/Build.OM.UnitTests/Definition/Project_Tests.cs @@ -3247,7 +3247,7 @@ public void GetItemProvenanceMatchesLiteralsWithNonCanonicPaths() using (var env = TestEnvironment.Create()) { var projectCollection = env.CreateProjectCollection().Collection; - var testFiles = env.CreateTestProjectWithFiles(projectContents, new string[0], "u/x"); + var testFiles = env.CreateTestProjectWithFiles(projectContents, Array.Empty(), "u/x"); var project = new Project(testFiles.ProjectFile, new Dictionary(), MSBuildConstants.CurrentToolsVersion, projectCollection); var expected2Foo = new ProvenanceResultTupleList @@ -3276,7 +3276,7 @@ public void GetItemProvenanceMatchesAbsoluteAndRelativePaths() { var projectCollection = env.CreateProjectCollection().Collection; - var testFiles = env.CreateTestProjectWithFiles(projectContents, new string[0]); + var testFiles = env.CreateTestProjectWithFiles(projectContents, Array.Empty()); var project = new Project(testFiles.ProjectFile, new Dictionary(), MSBuildConstants.CurrentToolsVersion, projectCollection); @@ -3568,7 +3568,7 @@ public void GetItemProvenanceShouldBeSensitiveToGlobbingCone(string includeGlob, using (var env = TestEnvironment.Create()) using (var projectCollection = new ProjectCollection()) { - var testFiles = env.CreateTestProjectWithFiles(projectContents, new string[0], relativePathOfProjectFile); + var testFiles = env.CreateTestProjectWithFiles(projectContents, Array.Empty(), relativePathOfProjectFile); var project = new Project(testFiles.ProjectFile, new Dictionary(), MSBuildConstants.CurrentToolsVersion, projectCollection); ProvenanceResultTupleList expectedProvenance = null; @@ -3764,7 +3764,7 @@ public void GetAllGlobsShouldProduceGlobsThatMatchAbsolutePaths() { var projectCollection = env.CreateProjectCollection().Collection; - var testFiles = env.CreateTestProjectWithFiles(projectContents, new string[0]); + var testFiles = env.CreateTestProjectWithFiles(projectContents, Array.Empty()); var project = new Project(testFiles.ProjectFile, new Dictionary(), MSBuildConstants.CurrentToolsVersion, projectCollection); diff --git a/src/Build.OM.UnitTests/Instance/ProjectInstance_Tests.cs b/src/Build.OM.UnitTests/Instance/ProjectInstance_Tests.cs index b023b0c6a75..3f4b4d9ea3b 100644 --- a/src/Build.OM.UnitTests/Instance/ProjectInstance_Tests.cs +++ b/src/Build.OM.UnitTests/Instance/ProjectInstance_Tests.cs @@ -404,13 +404,13 @@ public void BuildProjectInstancesConsecutively() { ProjectInstance instance1 = new Project().CreateProjectInstance(); - BuildRequestData buildRequestData1 = new BuildRequestData(instance1, new string[] { }); + BuildRequestData buildRequestData1 = new BuildRequestData(instance1, Array.Empty()); BuildManager.DefaultBuildManager.Build(new BuildParameters(), buildRequestData1); new Project().CreateProjectInstance(); - BuildRequestData buildRequestData2 = new BuildRequestData(instance1, new string[] { }); + BuildRequestData buildRequestData2 = new BuildRequestData(instance1, Array.Empty()); BuildManager.DefaultBuildManager.Build(new BuildParameters(), buildRequestData2); } diff --git a/src/Build.UnitTests/BackEnd/BinaryTranslator_Tests.cs b/src/Build.UnitTests/BackEnd/BinaryTranslator_Tests.cs index 6c068f87d83..c0d9aa78bbc 100644 --- a/src/Build.UnitTests/BackEnd/BinaryTranslator_Tests.cs +++ b/src/Build.UnitTests/BackEnd/BinaryTranslator_Tests.cs @@ -127,7 +127,7 @@ public void TestSerializeString() [Fact] public void TestSerializeStringArray() { - HelperTestArray(new string[] { }, StringComparer.Ordinal); + HelperTestArray(Array.Empty(), StringComparer.Ordinal); HelperTestArray(new string[] { "foo", "bar" }, StringComparer.Ordinal); HelperTestArray(null, StringComparer.Ordinal); } diff --git a/src/Build.UnitTests/BackEnd/BuildManager_Tests.cs b/src/Build.UnitTests/BackEnd/BuildManager_Tests.cs index f79cbf36870..17b3567672c 100644 --- a/src/Build.UnitTests/BackEnd/BuildManager_Tests.cs +++ b/src/Build.UnitTests/BackEnd/BuildManager_Tests.cs @@ -195,7 +195,7 @@ private void SimpleP2PBuild(BuildParameters buildParameters) .ProjectInstance.FullPath, new Dictionary(), MSBuildConstants.CurrentToolsVersion, - new string[0], + Array.Empty(), null)); result.OverallResult.ShouldBe(BuildResultCode.Success); @@ -446,7 +446,7 @@ private void RunOutOfProcBuild(Action buildParametersModifier) Project project = CreateProject(CleanupFileContents(contents), MSBuildDefaultToolsVersion, _projectCollection, false); - var data = new BuildRequestData(project.CreateProjectInstance(), new string[0], _projectCollection.HostServices); + var data = new BuildRequestData(project.CreateProjectInstance(), Array.Empty(), _projectCollection.HostServices); var customparameters = new BuildParameters { EnableNodeReuse = false, Loggers = new ILogger[] { _logger } }; buildParametersModifier(customparameters); @@ -657,7 +657,7 @@ public void MsBuildForwardAllPropertiesFromChildLaunchChildNode() _env.SetEnvironmentVariable("MsBuildForwardPropertiesFromChild", "Something"); var project = CreateProject(contents, null, _projectCollection, false); - var data = new BuildRequestData(project.FullPath, new Dictionary(), MSBuildDefaultToolsVersion, new string[] { }, null); + var data = new BuildRequestData(project.FullPath, new Dictionary(), MSBuildDefaultToolsVersion, Array.Empty(), null); BuildResult result = _buildManager.Build(_parameters, data); Assert.Equal(BuildResultCode.Success, result.OverallResult); @@ -713,7 +713,7 @@ public void OutOfProcNodeForwardCertainproperties() var project = CreateProject(contents, null, _projectCollection, false); var data = new BuildRequestData(project.FullPath, new Dictionary(), - MSBuildDefaultToolsVersion, new string[] { }, null); + MSBuildDefaultToolsVersion, Array.Empty(), null); BuildResult result = _buildManager.Build(_parameters, data); Assert.Equal(BuildResultCode.Success, result.OverallResult); @@ -775,7 +775,7 @@ public void OutOfProcNodeForwardCertainpropertiesAlsoGetResultsFromCache() var project = CreateProject(contents, null, _projectCollection, false); var data = new BuildRequestData(project.FullPath, new Dictionary(), - MSBuildDefaultToolsVersion, new string[] { }, null); + MSBuildDefaultToolsVersion, Array.Empty(), null); BuildResult result = _buildManager.Build(_parameters, data); Assert.Equal(BuildResultCode.Success, result.OverallResult); @@ -830,7 +830,7 @@ public void ForwardNoPropertiesLaunchChildNode() var project = CreateProject(contents, null, _projectCollection, false); var data = new BuildRequestData(project.FullPath, new Dictionary(), - MSBuildDefaultToolsVersion, new string[] { }, null); + MSBuildDefaultToolsVersion, Array.Empty(), null); BuildResult result = _buildManager.Build(_parameters, data); Assert.Equal(BuildResultCode.Success, result.OverallResult); @@ -899,7 +899,7 @@ public override bool Execute() var project = CreateProject(contents, null, projectCollection, false); var data = new BuildRequestData(project.FullPath, new Dictionary(), - MSBuildDefaultToolsVersion, new string[] { }, null); + MSBuildDefaultToolsVersion, Array.Empty(), null); var customParameters = new BuildParameters(projectCollection) { Loggers = new ILogger[] { _logger } }; BuildResult result = _buildManager.Build(customParameters, data); @@ -934,7 +934,7 @@ public void ForwardNoPropertiesLaunchChildNodeDefault() var project = CreateProject(contents, null, _projectCollection, false); var data = new BuildRequestData(project.FullPath, new Dictionary(), - MSBuildDefaultToolsVersion, new string[] { }, null); + MSBuildDefaultToolsVersion, Array.Empty(), null); BuildResult result = _buildManager.Build(_parameters, data); Assert.Equal(BuildResultCode.Success, result.OverallResult); _logger.AssertLogContains("[success]"); @@ -1100,7 +1100,7 @@ public void SimpleBuildWithFailureAndWarningOnlyLogCriticalEventsFalse() [Fact] public void BuildRequestWithoutBegin() { - BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "2.0", new string[0], null); + BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "2.0", Array.Empty(), null); Should.Throw(() => _buildManager.BuildRequest(data)); } @@ -1110,7 +1110,7 @@ public void BuildRequestWithoutBegin() [Fact] public void GraphBuildRequestWithoutBegin() { - GraphBuildRequestData data = new GraphBuildRequestData("foo", new Dictionary(), new string[0], null); + GraphBuildRequestData data = new GraphBuildRequestData("foo", new Dictionary(), Array.Empty(), null); Should.Throw(() => _buildManager.BuildRequest(data)); } @@ -1120,7 +1120,7 @@ public void GraphBuildRequestWithoutBegin() [Fact] public void PendBuildRequestWithoutBegin() { - BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "2.0", new string[0], null); + BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "2.0", Array.Empty(), null); Should.Throw(() => _buildManager.PendBuildRequest(data)); } @@ -1130,7 +1130,7 @@ public void PendBuildRequestWithoutBegin() [Fact] public void PendGraphBuildRequestWithoutBegin() { - GraphBuildRequestData data = new GraphBuildRequestData("foo", new Dictionary(), new string[0], null); + GraphBuildRequestData data = new GraphBuildRequestData("foo", new Dictionary(), Array.Empty(), null); Should.Throw(() => _buildManager.PendBuildRequest(data)); } @@ -1156,7 +1156,7 @@ public void DisposeAfterUse() "); var project = CreateProject(contents, null, _projectCollection, false); var globalProperties = new Dictionary(); - var targets = new string[0]; + var targets = Array.Empty(); var brd = new BuildRequestData(project.FullPath, globalProperties, null, targets, new HostServices()); using (var bm = new BuildManager()) { @@ -1220,7 +1220,7 @@ public void ExtraEnds() [Fact] public void PendBuildRequestAfterEnd() { - BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "2.0", new string[0], null); + BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "2.0", Array.Empty(), null); _buildManager.BeginBuild(new BuildParameters()); _buildManager.EndBuild(); @@ -1233,7 +1233,7 @@ public void PendBuildRequestAfterEnd() [Fact] public void PendGraphBuildRequestAfterEnd() { - GraphBuildRequestData data = new GraphBuildRequestData("foo", new Dictionary(), new string[0], null); + GraphBuildRequestData data = new GraphBuildRequestData("foo", new Dictionary(), Array.Empty(), null); _buildManager.BeginBuild(new BuildParameters()); _buildManager.EndBuild(); @@ -1249,7 +1249,7 @@ public void BuildDuringBuild() try { BuildRequestData data = - new BuildRequestData("foo", new Dictionary(), "2.0", new string[0], null); + new BuildRequestData("foo", new Dictionary(), "2.0", Array.Empty(), null); _buildManager.BeginBuild(new BuildParameters()); Assert.Throws(() => { _buildManager.Build(new BuildParameters(), data); }); @@ -1491,7 +1491,7 @@ public void EndWithUnexecutedSubmission() "); - BuildRequestData data = GetBuildRequestData(contents, new string[] { }, MSBuildDefaultToolsVersion); + BuildRequestData data = GetBuildRequestData(contents, Array.Empty(), MSBuildDefaultToolsVersion); _buildManager.BeginBuild(_parameters); _buildManager.PendBuildRequest(data); _buildManager.EndBuild(); @@ -1511,7 +1511,7 @@ public void CancelledBuildWithUnexecutedSubmission() "); - BuildRequestData data = GetBuildRequestData(contents, new string[] { }, MSBuildDefaultToolsVersion); + BuildRequestData data = GetBuildRequestData(contents, Array.Empty(), MSBuildDefaultToolsVersion); _buildManager.BeginBuild(_parameters); _buildManager.PendBuildRequest(data); _buildManager.CancelAllSubmissions(); @@ -1541,7 +1541,7 @@ public void CancelledBuild() EnableNodeReuse = false }; - BuildRequestData data = GetBuildRequestData(contents, new string[] { }, MSBuildDefaultToolsVersion); + BuildRequestData data = GetBuildRequestData(contents, Array.Empty(), MSBuildDefaultToolsVersion); Console.WriteLine("CancelledBuild: beginning build"); _buildManager.BeginBuild(_parameters); @@ -1622,7 +1622,7 @@ public void CancelledBuildInTaskHostWithDelay20() "); - BuildRequestData data = GetBuildRequestData(contents, new string[] { }, MSBuildDefaultToolsVersion); + BuildRequestData data = GetBuildRequestData(contents, Array.Empty(), MSBuildDefaultToolsVersion); _buildManager.BeginBuild(_parameters); BuildSubmission asyncResult = _buildManager.PendBuildRequest(data); asyncResult.ExecuteAsync(null, null); @@ -1659,7 +1659,7 @@ public void CancelledBuildWithDelay40() "); - BuildRequestData data = GetBuildRequestData(contents, new string[] { }, MSBuildDefaultToolsVersion); + BuildRequestData data = GetBuildRequestData(contents, Array.Empty(), MSBuildDefaultToolsVersion); _buildManager.BeginBuild(_parameters); BuildSubmission asyncResult = _buildManager.PendBuildRequest(data); asyncResult.ExecuteAsync(null, null); @@ -1690,7 +1690,7 @@ public void CancelledBuildInTaskHostWithDelay40() "); - BuildRequestData data = GetBuildRequestData(contents, new string[] { }, MSBuildDefaultToolsVersion); + BuildRequestData data = GetBuildRequestData(contents, Array.Empty(), MSBuildDefaultToolsVersion); _buildManager.BeginBuild(_parameters); BuildSubmission asyncResult = _buildManager.PendBuildRequest(data); asyncResult.ExecuteAsync(null, null); @@ -1830,7 +1830,7 @@ public void OutOfProcNodeDoesntLockWorkingDirectory() File.WriteAllText(projectFile, contents); _env.SetEnvironmentVariable("MSBUILDNOINPROCNODE", "1"); - var data = new BuildRequestData(projectFile, new Dictionary(), MSBuildDefaultToolsVersion, new string[] { }, null); + var data = new BuildRequestData(projectFile, new Dictionary(), MSBuildDefaultToolsVersion, Array.Empty(), null); _buildManager.Build(_parameters, data); } @@ -1985,7 +1985,7 @@ public void GhostProjectRootElementCache() // Create Project 1 ProjectInstance projectInstance = CreateProjectInstance(contents1, null, _projectCollection, false); - var data = new BuildRequestData(projectInstance, new string[0]); + var data = new BuildRequestData(projectInstance, Array.Empty()); _logger.ClearLog(); @@ -2012,7 +2012,7 @@ public void GhostProjectRootElementCache() // Create a new build. ProjectInstance projectInstance2 = CreateProjectInstance(contents1, null, _projectCollection, false); - var data2 = new BuildRequestData(projectInstance2, new string[0]); + var data2 = new BuildRequestData(projectInstance2, Array.Empty()); // Build again. _parameters.ResetCaches = false; @@ -2150,7 +2150,7 @@ public void Regress239661() string fileName = _env.CreateFile(".proj").Path; File.WriteAllText(fileName, contents); - var data = new BuildRequestData(fileName, _projectCollection.GlobalProperties, MSBuildDefaultToolsVersion, new string[0], null); + var data = new BuildRequestData(fileName, _projectCollection.GlobalProperties, MSBuildDefaultToolsVersion, Array.Empty(), null); _parameters.DisableInProcNode = true; BuildResult result = _buildManager.Build(_parameters, data); Assert.Equal(BuildResultCode.Success, result.OverallResult); @@ -2238,7 +2238,7 @@ public void ProjectInstanceTransfersToOOPNode() } } - var data = new BuildRequestData(instance, new string[0]); + var data = new BuildRequestData(instance, Array.Empty()); // Force this to build out-of-proc _parameters.DisableInProcNode = true; @@ -2282,7 +2282,7 @@ public void ProjectInstanceLimitedTransferToOOPNode() instance.SetProperty("VirtualProp", "overridden"); instance.SetProperty("Unmodified", "changed"); - var data = new BuildRequestData(instance, new string[0], null, BuildRequestDataFlags.None, new string[] { "VirtualProp" }); + var data = new BuildRequestData(instance, Array.Empty(), null, BuildRequestDataFlags.None, new string[] { "VirtualProp" }); // Force this to build out-of-proc _parameters.DisableInProcNode = true; @@ -2309,7 +2309,7 @@ public void CacheLifetime() // Do a build with one build manager. using (var outerBuildManager = new BuildManager()) { - outerBuildCacheDirectory = BuildAndCheckCache(outerBuildManager, new string[] { }); + outerBuildCacheDirectory = BuildAndCheckCache(outerBuildManager, Array.Empty()); // Do another build with a second build manager while the first still exists. Since both BuildManagers // share a process-wide cache directory, we want to verify that they don't stomp on each other, either @@ -4326,7 +4326,7 @@ public void GraphBuildShouldBeAbleToConstructGraphButSkipBuild() var graphResult = buildSession.BuildGraphSubmission( new GraphBuildRequestData( projectGraphEntryPoints: new[] {new ProjectGraphEntryPoint(graph.GraphRoots.First().ProjectInstance.FullPath)}, - targetsToBuild: new string[0], + targetsToBuild: Array.Empty(), hostServices: null, flags: BuildRequestDataFlags.None, graphBuildOptions: new GraphBuildOptions {Build = false})); diff --git a/src/Build.UnitTests/BackEnd/BuildRequestConfiguration_Tests.cs b/src/Build.UnitTests/BackEnd/BuildRequestConfiguration_Tests.cs index 9169257ea35..7d42cfe8206 100644 --- a/src/Build.UnitTests/BackEnd/BuildRequestConfiguration_Tests.cs +++ b/src/Build.UnitTests/BackEnd/BuildRequestConfiguration_Tests.cs @@ -41,7 +41,7 @@ public void TestConstructorNullFile() { Assert.Throws(() => { - BuildRequestData config1 = new BuildRequestData(null, new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData config1 = new BuildRequestData(null, new Dictionary(), "toolsVersion", Array.Empty(), null); } ); } @@ -50,14 +50,14 @@ public void TestConstructorNullProps() { Assert.Throws(() => { - BuildRequestData config1 = new BuildRequestData("file", null, "toolsVersion", new string[0], null); + BuildRequestData config1 = new BuildRequestData("file", null, "toolsVersion", Array.Empty(), null); } ); } [Fact] public void TestConstructor1() { - BuildRequestData config1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData config1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null); } [Fact] @@ -65,7 +65,7 @@ public void TestConstructorInvalidConfigId() { Assert.Throws(() => { - BuildRequestData data = new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(1, data, "2.0"); config1.ShallowCloneWithNewId(0); } @@ -74,14 +74,14 @@ public void TestConstructorInvalidConfigId() [Fact] public void TestConstructor2PositiveConfigId() { - BuildRequestData config1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData config1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null); new BuildRequestConfiguration(1, config1, "2.0"); } [Fact] public void TestConstructor2NegativeConfigId() { - BuildRequestData config1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData config1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null); new BuildRequestConfiguration(-1, config1, "2.0"); } @@ -90,7 +90,7 @@ public void TestConstructor2NullFile() { Assert.Throws(() => { - BuildRequestData config1 = new BuildRequestData(null, new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData config1 = new BuildRequestData(null, new Dictionary(), "toolsVersion", Array.Empty(), null); } ); } @@ -100,22 +100,22 @@ public void TestConstructor2NullProps() { Assert.Throws(() => { - BuildRequestData config1 = new BuildRequestData("file", null, "toolsVersion", new string[0], null); + BuildRequestData config1 = new BuildRequestData("file", null, "toolsVersion", Array.Empty(), null); } ); } [Fact] public void TestWasGeneratedByNode() { - BuildRequestData data1 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data1 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(-1, data1, "2.0"); Assert.True(config1.WasGeneratedByNode); - BuildRequestData data2 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data2 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config2 = new BuildRequestConfiguration(1, data2, "2.0"); Assert.False(config2.WasGeneratedByNode); - BuildRequestData data3 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data3 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config3 = new BuildRequestConfiguration(data3, "2.0"); Assert.False(config3.WasGeneratedByNode); } @@ -123,15 +123,15 @@ public void TestWasGeneratedByNode() [Fact] public void TestDefaultConfigurationId() { - BuildRequestData data1 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data1 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(-1, data1, "2.0"); Assert.Equal(-1, config1.ConfigurationId); - BuildRequestData data2 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data2 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config2 = new BuildRequestConfiguration(1, data2, "2.0"); Assert.Equal(1, config2.ConfigurationId); - BuildRequestData data3 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data3 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config3 = new BuildRequestConfiguration(0, data3, "2.0"); Assert.Equal(0, config3.ConfigurationId); } @@ -141,7 +141,7 @@ public void TestSetConfigurationIdBad() { Assert.Throws(() => { - BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(-1, data, "2.0"); config1.ConfigurationId = -2; } @@ -150,7 +150,7 @@ public void TestSetConfigurationIdBad() [Fact] public void TestSetConfigurationIdGood() { - BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(data, "2.0"); Assert.Equal(0, config1.ConfigurationId); config1.ConfigurationId = 1; @@ -160,7 +160,7 @@ public void TestSetConfigurationIdGood() [Fact] public void TestGetFileName() { - BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(data, "2.0"); Assert.Equal(config1.ProjectFullPath, Path.GetFullPath("file")); } @@ -168,7 +168,7 @@ public void TestGetFileName() [Fact] public void TestGetToolsVersion() { - BuildRequestData data1 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data1 = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(data1, "2.0"); Assert.Equal("toolsVersion", config1.ToolsVersion); } @@ -177,7 +177,7 @@ public void TestGetToolsVersion() public void TestGetProperties() { Dictionary props = new Dictionary(); - BuildRequestConfiguration config1 = new BuildRequestConfiguration(new BuildRequestData("file", props, "toolsVersion", new string[0], null), "2.0"); + BuildRequestConfiguration config1 = new BuildRequestConfiguration(new BuildRequestData("file", props, "toolsVersion", Array.Empty(), null), "2.0"); Assert.Equal(props.Count, Helpers.MakeList((IEnumerable)(config1.GlobalProperties)).Count); } @@ -185,7 +185,7 @@ public void TestGetProperties() [Fact] public void TestSetProjectGood() { - BuildRequestData data1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData data1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(data1, "2.0"); Assert.Null(config1.Project); Project project = new Project(XmlReader.Create(new StringReader(ObjectModelHelpers.CleanupFileContents(@"")))); @@ -198,7 +198,7 @@ public void TestSetProjectGood() [Fact] public void TestPacketType() { - BuildRequestData data1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData data1 = new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config1 = new BuildRequestConfiguration(data1, "2.0"); Assert.Equal(NodePacketType.BuildRequestConfiguration, config1.Type); } @@ -206,11 +206,11 @@ public void TestPacketType() [Fact] public void TestGetHashCode() { - BuildRequestConfiguration config1 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null), "2.0"); - BuildRequestConfiguration config2 = new BuildRequestConfiguration(new BuildRequestData("File", new Dictionary(), "ToolsVersion", new string[0], null), "2.0"); - BuildRequestConfiguration config3 = new BuildRequestConfiguration(new BuildRequestData("file2", new Dictionary(), "toolsVersion", new string[0], null), "2.0"); - BuildRequestConfiguration config4 = new BuildRequestConfiguration(new BuildRequestData("file2", new Dictionary(), "toolsVersion2", new string[0], null), "2.0"); - BuildRequestConfiguration config5 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion2", new string[0], null), "2.0"); + BuildRequestConfiguration config1 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null), "2.0"); + BuildRequestConfiguration config2 = new BuildRequestConfiguration(new BuildRequestData("File", new Dictionary(), "ToolsVersion", Array.Empty(), null), "2.0"); + BuildRequestConfiguration config3 = new BuildRequestConfiguration(new BuildRequestData("file2", new Dictionary(), "toolsVersion", Array.Empty(), null), "2.0"); + BuildRequestConfiguration config4 = new BuildRequestConfiguration(new BuildRequestData("file2", new Dictionary(), "toolsVersion2", Array.Empty(), null), "2.0"); + BuildRequestConfiguration config5 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion2", Array.Empty(), null), "2.0"); Assert.Equal(config1.GetHashCode(), config2.GetHashCode()); Assert.NotEqual(config1.GetHashCode(), config3.GetHashCode()); @@ -221,20 +221,20 @@ public void TestGetHashCode() [Fact] public void TestEquals() { - BuildRequestConfiguration config1 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null), "2.0"); + BuildRequestConfiguration config1 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null), "2.0"); Assert.Equal(config1, config1); - BuildRequestConfiguration config2 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null), "2.0"); + BuildRequestConfiguration config2 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null), "2.0"); Assert.Equal(config1, config2); - BuildRequestConfiguration config3 = new BuildRequestConfiguration(new BuildRequestData("file2", new Dictionary(), "toolsVersion", new string[0], null), "2.0"); + BuildRequestConfiguration config3 = new BuildRequestConfiguration(new BuildRequestData("file2", new Dictionary(), "toolsVersion", Array.Empty(), null), "2.0"); Assert.NotEqual(config1, config3); - BuildRequestConfiguration config4 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion2", new string[0], null), "2.0"); + BuildRequestConfiguration config4 = new BuildRequestConfiguration(new BuildRequestData("file", new Dictionary(), "toolsVersion2", Array.Empty(), null), "2.0"); Assert.NotEqual(config1, config4); PropertyDictionary props = new PropertyDictionary(); props.Set(ProjectPropertyInstance.Create("prop1", "value1")); - BuildRequestData data = new BuildRequestData("file", props.ToDictionary(), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", props.ToDictionary(), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config5 = new BuildRequestConfiguration(data, "2.0"); Assert.NotEqual(config1, config5); @@ -249,7 +249,7 @@ public void TestTranslation() properties.Set(ProjectPropertyInstance.Create("this", "that")); properties.Set(ProjectPropertyInstance.Create("foo", "bar")); - BuildRequestData data = new BuildRequestData("file", properties.ToDictionary(), "4.0", new string[0], null); + BuildRequestData data = new BuildRequestData("file", properties.ToDictionary(), "4.0", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(data, "2.0"); Assert.Equal(NodePacketType.BuildRequestConfiguration, config.Type); @@ -290,7 +290,7 @@ public void TestTranslationWithEntireProjectState() instance.TranslateEntireState = true; - BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData(instance, new string[] { }, null), "2.0"); + BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData(instance, Array.Empty(), null), "2.0"); configuration.ConfigurationId = 1; ((ITranslatable)configuration).Translate(TranslationHelpers.GetWriteTranslator()); @@ -310,7 +310,7 @@ public void TestTranslationWithEntireProjectState() [Fact] public void TestProperties() { - BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData("path", new Dictionary(), "2.0", new string[] { }, null), "2.0"); + BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData("path", new Dictionary(), "2.0", Array.Empty(), null), "2.0"); Assert.True(configuration.IsCacheable); Assert.False(configuration.IsLoaded); Assert.False(configuration.IsCached); @@ -363,7 +363,7 @@ public void TestCache() new ProjectCollection()); project.FullPath = "foo"; ProjectInstance instance = project.CreateProjectInstance(); - BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData(instance, new string[] { }, null), "2.0"); + BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData(instance, Array.Empty(), null), "2.0"); configuration.ConfigurationId = 1; string originalValue = Environment.GetEnvironmentVariable("MSBUILDCACHE"); @@ -464,7 +464,7 @@ public void TestCache2() Project project = new Project(XmlReader.Create(new StringReader(projectBody)), globalProperties, ObjectModelHelpers.MSBuildDefaultToolsVersion, new ProjectCollection()); project.FullPath = "foo"; ProjectInstance instance = project.CreateProjectInstance(); - BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData(instance, new string[] { }, null), "2.0"); + BuildRequestConfiguration configuration = new BuildRequestConfiguration(new BuildRequestData(instance, Array.Empty(), null), "2.0"); string originalTmp = Environment.GetEnvironmentVariable("TMP"); string originalTemp = Environment.GetEnvironmentVariable("TEMP"); @@ -564,7 +564,7 @@ private void TestSkipIsolationConstraints(string glob, string referencePath, boo var projectInstance = project.CreateProjectInstance(); - var configuration = new BuildRequestConfiguration(new BuildRequestData(projectInstance, new string[] {}), MSBuildConstants.CurrentToolsVersion); + var configuration = new BuildRequestConfiguration(new BuildRequestData(projectInstance, Array.Empty()), MSBuildConstants.CurrentToolsVersion); if (referencePath.Contains("$")) { diff --git a/src/Build.UnitTests/BackEnd/BuildRequestEngine_Tests.cs b/src/Build.UnitTests/BackEnd/BuildRequestEngine_Tests.cs index 176a21de6d1..3a464d3c342 100644 --- a/src/Build.UnitTests/BackEnd/BuildRequestEngine_Tests.cs +++ b/src/Build.UnitTests/BackEnd/BuildRequestEngine_Tests.cs @@ -333,7 +333,7 @@ private void ConfigureEngine(IBuildRequestEngine engine) [Fact] public void TestEngineShutdownWhileActive() { - BuildRequestData data = new BuildRequestData("TestFile", new Dictionary(), "TestToolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("TestFile", new Dictionary(), "TestToolsVersion", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, "2.0"); _cache.AddConfiguration(config); @@ -361,7 +361,7 @@ public void TestEngineShutdownWhileActive() [Fact] public void TestSimpleBuildScenario() { - BuildRequestData data = new BuildRequestData("TestFile", new Dictionary(), "TestToolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("TestFile", new Dictionary(), "TestToolsVersion", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, "2.0"); _cache.AddConfiguration(config); @@ -388,7 +388,7 @@ public void TestSimpleBuildScenario() [Fact] public void TestBuildWithChildren() { - BuildRequestData data = new BuildRequestData("TestFile", new Dictionary(), "TestToolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("TestFile", new Dictionary(), "TestToolsVersion", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, "2.0"); _cache.AddConfiguration(config); @@ -441,13 +441,13 @@ public void TestBuildWithChildren() [Fact] public void TestBuildWithNewConfiguration() { - BuildRequestData data = new BuildRequestData(Path.GetFullPath("TestFile"), new Dictionary(), "TestToolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData(Path.GetFullPath("TestFile"), new Dictionary(), "TestToolsVersion", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, "2.0"); _cache.AddConfiguration(config); // Configure the builder to spawn build requests MockRequestBuilder builder = (MockRequestBuilder)_host.GetComponent(BuildComponentType.RequestBuilder); - BuildRequestData data2 = new BuildRequestData(Path.GetFullPath("OtherFile"), new Dictionary(), "TestToolsVersion", new string[0], null); + BuildRequestData data2 = new BuildRequestData(Path.GetFullPath("OtherFile"), new Dictionary(), "TestToolsVersion", Array.Empty(), null); BuildRequestConfiguration unresolvedConfig = new BuildRequestConfiguration(data2, "2.0"); builder.NewRequests.Add(new FullyQualifiedBuildRequest[1] { new FullyQualifiedBuildRequest(unresolvedConfig, new string[1] { "requiredTarget1" }, true) }); diff --git a/src/Build.UnitTests/BackEnd/BuildRequestEntry_Tests.cs b/src/Build.UnitTests/BackEnd/BuildRequestEntry_Tests.cs index 04e1a6ff1f4..d81ca32ecba 100644 --- a/src/Build.UnitTests/BackEnd/BuildRequestEntry_Tests.cs +++ b/src/Build.UnitTests/BackEnd/BuildRequestEntry_Tests.cs @@ -22,8 +22,8 @@ public class BuildRequestEntry_Tests [Fact] public void TestConstructorGood() { - BuildRequest request = CreateNewBuildRequest(1, new string[0] { }); - BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); + BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); @@ -45,7 +45,7 @@ public void TestSimpleStateProgression() { // Start in Ready BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.Equal(BuildRequestEntryState.Ready, entry.State); Assert.Equal(entry.Request, request); @@ -93,7 +93,7 @@ public void TestSimpleStateProgression() public void TestResolveConfiguration() { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null); + BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data1, "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); @@ -115,7 +115,7 @@ public void TestResolveConfiguration() public void TestMultipleWaitingRequests() { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null); + BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data1, "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); @@ -145,7 +145,7 @@ public void TestMultipleWaitingRequests() public void TestMixedWaitingRequests() { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.Equal(BuildRequestEntryState.Ready, entry.State); @@ -182,7 +182,7 @@ public void TestNoReadyToWaiting() Assert.Throws(() => { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null); + BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data1, "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.Equal(BuildRequestEntryState.Ready, entry.State); @@ -199,7 +199,7 @@ public void TestNoReadyToComplete() Assert.Throws(() => { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null); + BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data1, "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.Equal(BuildRequestEntryState.Ready, entry.State); @@ -217,7 +217,7 @@ public void TestNoWaitingToComplete() Assert.Throws(() => { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null); + BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data1, "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.Equal(BuildRequestEntryState.Ready, entry.State); @@ -242,7 +242,7 @@ public void TestNoCompleteToWaiting() Assert.Throws(() => { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.Equal(BuildRequestEntryState.Ready, entry.State); @@ -263,7 +263,7 @@ public void TestNoCompleteToWaiting() public void TestResultsWithNoMatch1() { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.Equal(BuildRequestEntryState.Ready, entry.State); @@ -274,7 +274,7 @@ public void TestResultsWithNoMatch1() entry.WaitForResult(waitingRequest1); Assert.Equal(BuildRequestEntryState.Waiting, entry.State); - BuildRequest randomRequest = CreateNewBuildRequest(3, new string[0]); + BuildRequest randomRequest = CreateNewBuildRequest(3, Array.Empty()); BuildResult requiredResult = new BuildResult(randomRequest); requiredResult.AddResultsForTarget("bar", BuildResultUtilities.GetEmptySucceedingTargetResult()); entry.ReportResult(requiredResult); diff --git a/src/Build.UnitTests/BackEnd/BuildRequest_Tests.cs b/src/Build.UnitTests/BackEnd/BuildRequest_Tests.cs index 83b1acac8a5..0569166093f 100644 --- a/src/Build.UnitTests/BackEnd/BuildRequest_Tests.cs +++ b/src/Build.UnitTests/BackEnd/BuildRequest_Tests.cs @@ -34,39 +34,39 @@ public void TestConstructorBad() [Fact] public void TestConstructorGood() { - CreateNewBuildRequest(0, new string[0] { }); + CreateNewBuildRequest(0, Array.Empty() ); } [Fact] public void TestConfigurationId() { - BuildRequest request = CreateNewBuildRequest(0, new string[0] { }); + BuildRequest request = CreateNewBuildRequest(0, Array.Empty()); Assert.Equal(0, request.ConfigurationId); - BuildRequest request2 = CreateNewBuildRequest(1, new string[0] { }); + BuildRequest request2 = CreateNewBuildRequest(1, Array.Empty()); Assert.Equal(1, request2.ConfigurationId); - BuildRequest request3 = CreateNewBuildRequest(-1, new string[0] { }); + BuildRequest request3 = CreateNewBuildRequest(-1, Array.Empty()); Assert.Equal(-1, request3.ConfigurationId); } [Fact] public void TestConfigurationResolved() { - BuildRequest request = CreateNewBuildRequest(0, new string[0] { }); + BuildRequest request = CreateNewBuildRequest(0, Array.Empty()); Assert.False(request.IsConfigurationResolved); - BuildRequest request2 = CreateNewBuildRequest(1, new string[0] { }); + BuildRequest request2 = CreateNewBuildRequest(1, Array.Empty()); Assert.True(request2.IsConfigurationResolved); - BuildRequest request3 = CreateNewBuildRequest(-1, new string[0] { }); + BuildRequest request3 = CreateNewBuildRequest(-1, Array.Empty()); Assert.False(request3.IsConfigurationResolved); } [Fact] public void TestTargets() { - BuildRequest request = CreateNewBuildRequest(0, new string[0] { }); + BuildRequest request = CreateNewBuildRequest(0, Array.Empty()); Assert.NotNull(request.Targets); Assert.Empty(request.Targets); @@ -79,14 +79,14 @@ public void TestTargets() [Fact] public void TestPacketType() { - BuildRequest request = CreateNewBuildRequest(0, new string[0] { }); + BuildRequest request = CreateNewBuildRequest(0, Array.Empty()); Assert.Equal(NodePacketType.BuildRequest, request.Type); } [Fact] public void TestResolveConfigurationGood() { - BuildRequest request = CreateNewBuildRequest(0, new string[0] { }); + BuildRequest request = CreateNewBuildRequest(0, Array.Empty()); request.ResolveConfiguration(1); Assert.True(request.IsConfigurationResolved); Assert.Equal(1, request.ConfigurationId); @@ -97,7 +97,7 @@ public void TestResolveConfigurationBad() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0] { }); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); request.ResolveConfiguration(2); } ); @@ -108,7 +108,7 @@ public void TestResolveConfigurationBad2() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(0, new string[0] { }); + BuildRequest request = CreateNewBuildRequest(0, Array.Empty()); request.ResolveConfiguration(-1); } ); diff --git a/src/Build.UnitTests/BackEnd/BuildResult_Tests.cs b/src/Build.UnitTests/BackEnd/BuildResult_Tests.cs index f683a372813..9901c21cbca 100644 --- a/src/Build.UnitTests/BackEnd/BuildResult_Tests.cs +++ b/src/Build.UnitTests/BackEnd/BuildResult_Tests.cs @@ -30,14 +30,14 @@ public BuildResult_Tests() [Fact] public void TestConstructorGood() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result2 = new BuildResult(request); } [Fact] public void Clone() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result1 = new BuildResult(request); result1.ResultsByTarget.Add("FOO", BuildResultUtilities.GetEmptySucceedingTargetResult()); Assert.True(result1.ResultsByTarget.ContainsKey("foo")); // test comparer @@ -70,11 +70,11 @@ public void TestConstructorBad() [Fact] public void TestConfigurationId() { - BuildRequest request = CreateNewBuildRequest(-1, new string[0]); + BuildRequest request = CreateNewBuildRequest(-1, Array.Empty()); BuildResult result = new BuildResult(request); Assert.Equal(-1, result.ConfigurationId); - BuildRequest request2 = CreateNewBuildRequest(1, new string[0]); + BuildRequest request2 = CreateNewBuildRequest(1, Array.Empty()); BuildResult result2 = new BuildResult(request2); Assert.Equal(1, result2.ConfigurationId); } @@ -82,7 +82,7 @@ public void TestConfigurationId() [Fact] public void TestExceptionGood() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); Assert.Null(result.Exception); AccessViolationException e = new AccessViolationException(); @@ -94,20 +94,20 @@ public void TestExceptionGood() [Fact] public void TestOverallResult() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); Assert.Equal(BuildResultCode.Success, result.OverallResult); result.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); Assert.Equal(BuildResultCode.Success, result.OverallResult); - result.AddResultsForTarget("bar", new TargetResult(new TaskItem[0] { }, new WorkUnitResult(WorkUnitResultCode.Success, WorkUnitActionCode.Continue, new Exception()))); + result.AddResultsForTarget("bar", new TargetResult(Array.Empty(), new WorkUnitResult(WorkUnitResultCode.Success, WorkUnitActionCode.Continue, new Exception()))); Assert.Equal(BuildResultCode.Success, result.OverallResult); - result.AddResultsForTarget("baz", new TargetResult(new TaskItem[0] { }, BuildResultUtilities.GetStopWithErrorResult(new Exception()))); + result.AddResultsForTarget("baz", new TargetResult(Array.Empty(), BuildResultUtilities.GetStopWithErrorResult(new Exception()))); Assert.Equal(BuildResultCode.Failure, result.OverallResult); - BuildRequest request2 = CreateNewBuildRequest(2, new string[0]); + BuildRequest request2 = CreateNewBuildRequest(2, Array.Empty()); BuildResult result2 = new BuildResult(request2); result2.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); result2.AddResultsForTarget("bar", BuildResultUtilities.GetEmptyFailingTargetResult()); @@ -117,7 +117,7 @@ public void TestOverallResult() [Fact] public void TestPacketType() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); Assert.Equal(NodePacketType.BuildResult, ((INodePacket)result).Type); } @@ -125,7 +125,7 @@ public void TestPacketType() [Fact] public void TestAddAndRetrieve() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); result.AddResultsForTarget("bar", BuildResultUtilities.GetEmptyFailingTargetResult()); @@ -139,7 +139,7 @@ public void TestIndexerBad1() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); ITargetResult targetResult = result["foo"]; } @@ -151,7 +151,7 @@ public void TestIndexerBad2() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); ITargetResult targetResult = result["bar"]; @@ -164,7 +164,7 @@ public void TestAddResultsInvalid1() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget(null, BuildResultUtilities.GetEmptySucceedingTargetResult()); } @@ -176,7 +176,7 @@ public void TestAddResultsInvalid2() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget("foo", null); } @@ -188,7 +188,7 @@ public void TestAddResultsInvalid3() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget(null, BuildResultUtilities.GetEmptySucceedingTargetResult()); } @@ -197,7 +197,7 @@ public void TestAddResultsInvalid3() [Fact] public void TestMergeResults() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); @@ -224,7 +224,7 @@ public void TestMergeResultsBad1() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); @@ -238,11 +238,11 @@ public void TestMergeResultsBad3() { Assert.Throws(() => { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); - BuildRequest request2 = CreateNewBuildRequest(2, new string[0]); + BuildRequest request2 = CreateNewBuildRequest(2, Array.Empty()); BuildResult result2 = new BuildResult(request2); result2.AddResultsForTarget("bar", BuildResultUtilities.GetEmptySucceedingTargetResult()); @@ -253,7 +253,7 @@ public void TestMergeResultsBad3() [Fact] public void TestHasResultsForTarget() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); result.AddResultsForTarget("foo", BuildResultUtilities.GetEmptySucceedingTargetResult()); @@ -264,7 +264,7 @@ public void TestHasResultsForTarget() [Fact] public void TestEnumerator() { - BuildRequest request = CreateNewBuildRequest(1, new string[0]); + BuildRequest request = CreateNewBuildRequest(1, Array.Empty()); BuildResult result = new BuildResult(request); int countFound = 0; foreach (KeyValuePair resultPair in result.ResultsByTarget) @@ -324,7 +324,7 @@ public void TestTranslation() result.DefaultTargets = new List { "c", "d" }; result.AddResultsForTarget("alpha", new TargetResult(new TaskItem[] { fooTaskItem }, BuildResultUtilities.GetSuccessResult())); - result.AddResultsForTarget("omega", new TargetResult(new TaskItem[] { }, BuildResultUtilities.GetStopWithErrorResult(new ArgumentException("The argument was invalid")))); + result.AddResultsForTarget("omega", new TargetResult(Array.Empty(), BuildResultUtilities.GetStopWithErrorResult(new ArgumentException("The argument was invalid")))); Assert.Equal(NodePacketType.BuildResult, (result as INodePacket).Type); ((ITranslatable)result).Translate(TranslationHelpers.GetWriteTranslator()); diff --git a/src/Build.UnitTests/BackEnd/ConfigurationMetadata_Tests.cs b/src/Build.UnitTests/BackEnd/ConfigurationMetadata_Tests.cs index 7ce55c62dbb..5cbdd3a1394 100644 --- a/src/Build.UnitTests/BackEnd/ConfigurationMetadata_Tests.cs +++ b/src/Build.UnitTests/BackEnd/ConfigurationMetadata_Tests.cs @@ -61,7 +61,7 @@ public void TestConstructorNullProject() [Fact] public void TestValidConfiguration() { - BuildRequestData data = new BuildRequestData("file", new Dictionary(), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, "2.0"); ConfigurationMetadata metadata = new ConfigurationMetadata(config); Assert.Equal(data.ProjectFullPath, metadata.ProjectFullPath); @@ -87,7 +87,7 @@ public void TestValidProject() [Fact] public void TestGetHashCode() { - BuildRequestData data = new BuildRequestData("file", new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, ObjectModelHelpers.MSBuildDefaultToolsVersion); Project project = CreateProject(); @@ -103,7 +103,7 @@ public void TestGetHashCode() [Fact] public void TestEquals() { - BuildRequestData data = new BuildRequestData("file", new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data, ObjectModelHelpers.MSBuildDefaultToolsVersion); Project project = CreateProject(); @@ -112,12 +112,12 @@ public void TestEquals() ConfigurationMetadata metadata2 = new ConfigurationMetadata(project); Assert.True(metadata1.Equals(metadata2)); - data = new BuildRequestData("file2", new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, new string[0], null); + data = new BuildRequestData("file2", new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, Array.Empty(), null); BuildRequestConfiguration config2 = new BuildRequestConfiguration(1, data, ObjectModelHelpers.MSBuildDefaultToolsVersion); ConfigurationMetadata metadata3 = new ConfigurationMetadata(config2); Assert.False(metadata1.Equals(metadata3)); - data = new BuildRequestData("file", new Dictionary(), "3.0", new string[0], null); + data = new BuildRequestData("file", new Dictionary(), "3.0", Array.Empty(), null); BuildRequestConfiguration config3 = new BuildRequestConfiguration(1, data, "3.0"); ConfigurationMetadata metadata4 = new ConfigurationMetadata(config3); Assert.False(metadata1.Equals(metadata4)); diff --git a/src/Build.UnitTests/BackEnd/FullyQualifiedBuildRequest_Tests.cs b/src/Build.UnitTests/BackEnd/FullyQualifiedBuildRequest_Tests.cs index 2d7c9d7df15..576661b9af0 100644 --- a/src/Build.UnitTests/BackEnd/FullyQualifiedBuildRequest_Tests.cs +++ b/src/Build.UnitTests/BackEnd/FullyQualifiedBuildRequest_Tests.cs @@ -16,13 +16,13 @@ public class FullyQualifiedBuildRequest_Tests [Fact] public void TestConstructorGood() { - BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "tools", new string[0], null); + BuildRequestData data1 = new BuildRequestData("foo", new Dictionary(), "tools", Array.Empty(), null); FullyQualifiedBuildRequest request = new FullyQualifiedBuildRequest(new BuildRequestConfiguration(data1, "2.0"), new string[1] { "foo" }, true); - request = new FullyQualifiedBuildRequest(new BuildRequestConfiguration(data1, "2.0"), new string[0] { }, true); + request = new FullyQualifiedBuildRequest(new BuildRequestConfiguration(data1, "2.0"), Array.Empty(), true); - BuildRequestData data3 = new BuildRequestData("foo", new Dictionary(), "tools", new string[0], null); - request = new FullyQualifiedBuildRequest(new BuildRequestConfiguration(data1, "2.0"), new string[0] { }, false); + BuildRequestData data3 = new BuildRequestData("foo", new Dictionary(), "tools", Array.Empty(), null); + request = new FullyQualifiedBuildRequest(new BuildRequestConfiguration(data1, "2.0"), Array.Empty(), false); } [Fact] @@ -40,14 +40,14 @@ public void TestConstructorBad2() { Assert.Throws(() => { - FullyQualifiedBuildRequest request = new FullyQualifiedBuildRequest(new BuildRequestConfiguration(new BuildRequestData("foo", new Dictionary(), "tools", new string[0], null), "2.0"), null, true); + FullyQualifiedBuildRequest request = new FullyQualifiedBuildRequest(new BuildRequestConfiguration(new BuildRequestData("foo", new Dictionary(), "tools", Array.Empty(), null), "2.0"), null, true); } ); } [Fact] public void TestProperties() { - BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "tools", new string[0], null); + BuildRequestData data = new BuildRequestData("foo", new Dictionary(), "tools", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(data, "2.0"); FullyQualifiedBuildRequest request = new FullyQualifiedBuildRequest(config, new string[1] { "foo" }, true); Assert.Equal(request.Config, config); @@ -56,4 +56,4 @@ public void TestProperties() Assert.True(request.ResultsNeeded); } } -} \ No newline at end of file +} diff --git a/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs b/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs index ad59e9aa5ce..828951d09b5 100644 --- a/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs +++ b/src/Build.UnitTests/BackEnd/IntrinsicTask_Tests.cs @@ -3881,7 +3881,7 @@ private static IntrinsicTask CreateIntrinsicTask(string content) ProjectTargetInstanceChild targetChild = projectInstance.Targets["t"].Children.First(); NodeLoggingContext nodeContext = new NodeLoggingContext(new MockLoggingService(), 1, false); - BuildRequestEntry entry = new BuildRequestEntry(new BuildRequest(1 /* submissionId */, 0, 1, new string[] { "t" }, null, BuildEventContext.Invalid, null), new BuildRequestConfiguration(1, new BuildRequestData("projectFile", new Dictionary(), "3.5", new string[0], null), "2.0")); + BuildRequestEntry entry = new BuildRequestEntry(new BuildRequest(1 /* submissionId */, 0, 1, new string[] { "t" }, null, BuildEventContext.Invalid, null), new BuildRequestConfiguration(1, new BuildRequestData("projectFile", new Dictionary(), "3.5", Array.Empty(), null), "2.0")); entry.RequestConfiguration.Project = projectInstance; IntrinsicTask task = IntrinsicTask.InstantiateTask( targetChild, @@ -3916,7 +3916,7 @@ internal static void AssertItemEvaluationFromTarget(string projectContents, stri var targetChild = projectInstance.Targets["t"].Children.First(); var nodeContext = new NodeLoggingContext(new MockLoggingService(), 1, false); - var entry = new BuildRequestEntry(new BuildRequest(1 /* submissionId */, 0, 1, new string[] { targetName }, null, BuildEventContext.Invalid, null), new BuildRequestConfiguration(1, new BuildRequestData("projectFile", new Dictionary(), "3.5", new string[0], null), "2.0")); + var entry = new BuildRequestEntry(new BuildRequest(1 /* submissionId */, 0, 1, new string[] { targetName }, null, BuildEventContext.Invalid, null), new BuildRequestConfiguration(1, new BuildRequestData("projectFile", new Dictionary(), "3.5", Array.Empty(), null), "2.0")); entry.RequestConfiguration.Project = projectInstance; var task = IntrinsicTask.InstantiateTask( targetChild, diff --git a/src/Build.UnitTests/BackEnd/LoggingServicesLogMethod_Tests.cs b/src/Build.UnitTests/BackEnd/LoggingServicesLogMethod_Tests.cs index 09b271ca757..3e69b611fdf 100644 --- a/src/Build.UnitTests/BackEnd/LoggingServicesLogMethod_Tests.cs +++ b/src/Build.UnitTests/BackEnd/LoggingServicesLogMethod_Tests.cs @@ -862,7 +862,7 @@ public void ProjectStartedEventTests(string projectFile, string targetNames) ProcessBuildEventHelper service = (ProcessBuildEventHelper)ProcessBuildEventHelper.CreateLoggingService(LoggerMode.Synchronous, 1, componentHost); ConfigCache cache = (ConfigCache)componentHost.GetComponent(BuildComponentType.ConfigCache); - BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(2, data, "4.0"); cache.AddConfiguration(config); @@ -1444,7 +1444,7 @@ private void TestProjectFinishedEvent(string projectFile, bool success) ConfigCache cache = (ConfigCache)componentHost.GetComponent(BuildComponentType.ConfigCache); - BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", new string[0], null); + BuildRequestData data = new BuildRequestData("file", new Dictionary(StringComparer.OrdinalIgnoreCase), "toolsVersion", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(2, data, "4.0"); cache.AddConfiguration(config); diff --git a/src/Build.UnitTests/BackEnd/RequestBuilder_Tests.cs b/src/Build.UnitTests/BackEnd/RequestBuilder_Tests.cs index 02d3dfc415a..eee00a073fe 100644 --- a/src/Build.UnitTests/BackEnd/RequestBuilder_Tests.cs +++ b/src/Build.UnitTests/BackEnd/RequestBuilder_Tests.cs @@ -223,7 +223,7 @@ public void TestMissingProjectFile() { TestTargetBuilder targetBuilder = (TestTargetBuilder)_host.GetComponent(BuildComponentType.TargetBuilder); IConfigCache configCache = (IConfigCache)_host.GetComponent(BuildComponentType.ConfigCache); - BuildRequestConfiguration configuration = new BuildRequestConfiguration(1, new BuildRequestData("testName", new Dictionary(), "3.5", new string[0], null), "2.0"); + BuildRequestConfiguration configuration = new BuildRequestConfiguration(1, new BuildRequestData("testName", new Dictionary(), "3.5", Array.Empty(), null), "2.0"); configCache.AddConfiguration(configuration); BuildRequest request = CreateNewBuildRequest(1, new string[1] { "target1" }); @@ -268,7 +268,7 @@ private BuildRequestConfiguration CreateTestProject(int configId) projectFile, new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, - new string[0], + Array.Empty(), null), defaultToolsVersion); return config; @@ -320,7 +320,7 @@ private BuildRequest CreateNewBuildRequest(int configurationId, string[] targets private TargetResult GetEmptySuccessfulTargetResult() { - return new TargetResult(new TaskItem[0] { }, new WorkUnitResult(WorkUnitResultCode.Success, WorkUnitActionCode.Continue, null)); + return new TargetResult(Array.Empty(), new WorkUnitResult(WorkUnitResultCode.Success, WorkUnitActionCode.Continue, null)); } private void WaitForEvent(WaitHandle evt, string eventName) diff --git a/src/Build.UnitTests/BackEnd/Scheduler_Tests.cs b/src/Build.UnitTests/BackEnd/Scheduler_Tests.cs index 4a443fcc458..c6406b169b7 100644 --- a/src/Build.UnitTests/BackEnd/Scheduler_Tests.cs +++ b/src/Build.UnitTests/BackEnd/Scheduler_Tests.cs @@ -72,11 +72,11 @@ public Scheduler_Tests() _scheduler = new Scheduler(); _scheduler.InitializeComponent(_host); CreateConfiguration(99, "parent.proj"); - _defaultParentRequest = CreateBuildRequest(99, 99, new string[] { }, null); + _defaultParentRequest = CreateBuildRequest(99, 99, Array.Empty(), null); // Set up the scheduler with one node to start with. _scheduler.ReportNodesCreated(new NodeInfo[] { new NodeInfo(1, NodeProviderType.InProc) }); - _scheduler.ReportRequestBlocked(1, new BuildRequestBlocker(-1, new string[] { }, new BuildRequest[] { _defaultParentRequest })); + _scheduler.ReportRequestBlocked(1, new BuildRequestBlocker(-1, Array.Empty(), new BuildRequest[] { _defaultParentRequest })); _logger = new MockLogger(); _parameters = new BuildParameters(); @@ -107,7 +107,7 @@ public void TestSimpleRequest() { CreateConfiguration(1, "foo.proj"); BuildRequest request = CreateBuildRequest(1, 1); - BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Single(response); @@ -125,7 +125,7 @@ public void TestSimpleRequestWithCachedResultsSuccess() BuildRequest request = CreateBuildRequest(1, 1, new string[] { "foo" }); BuildResult result = CacheBuildResult(request, "foo", BuildResultUtilities.GetSuccessResult()); - BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -149,7 +149,7 @@ public void TestSimpleRequestWithCachedResultsFail() BuildRequest request = CreateBuildRequest(1, 1, new string[] { "foo" }); BuildResult result = CacheBuildResult(request, "foo", BuildResultUtilities.GetStopWithErrorResult()); - BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -172,7 +172,7 @@ public void TestChildRequest() CreateConfiguration(1, "foo.proj"); BuildRequest request = CreateBuildRequest(1, 1, new string[] { "foo" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(-1, new string[] { }, new BuildRequest[] { request }); + BuildRequestBlocker blocker = new BuildRequestBlocker(-1, Array.Empty(), new BuildRequest[] { request }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); CreateConfiguration(2, "bar.proj"); @@ -203,7 +203,7 @@ public void TestMultipleRequests() BuildRequest request1 = CreateBuildRequest(1, 1, new string[] { "foo" }); BuildRequest request2 = CreateBuildRequest(2, 1, new string[] { "bar" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Single(response); @@ -223,7 +223,7 @@ public void TestMultipleRequestsWithSomeResults() BuildRequest request2 = CreateBuildRequest(2, 2, new string[] { "bar" }); BuildResult result2 = CacheBuildResult(request2, "bar", BuildResultUtilities.GetSuccessResult()); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -246,7 +246,7 @@ public void TestMultipleRequestsWithAllResults() BuildRequest request2 = CreateBuildRequest(2, 2, new string[] { "bar" }); BuildResult result2 = CacheBuildResult(request2, "bar", BuildResultUtilities.GetSuccessResult()); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(3, response.Count); @@ -274,7 +274,7 @@ public void TestOutOfProcNodeCreatedWhenAffinityIsOutOfProc() BuildRequest request1 = CreateBuildRequest(1, 1, new string[] { "foo" }, NodeAffinity.OutOfProc, _defaultParentRequest); BuildRequest request2 = CreateBuildRequest(2, 1, new string[] { "bar" }, NodeAffinity.OutOfProc, _defaultParentRequest); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); // Parent request is blocked by the fact that both child requests require the out-of-proc node that doesn't @@ -298,7 +298,7 @@ public void TestOutOfProcNodesCreatedWhenAffinityIsOutOfProc() BuildRequest request1 = CreateBuildRequest(1, 1, new string[] { "foo" }, NodeAffinity.OutOfProc, _defaultParentRequest); BuildRequest request2 = CreateBuildRequest(2, 1, new string[] { "bar" }, NodeAffinity.OutOfProc, _defaultParentRequest); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); // Parent request is blocked by the fact that both child requests require the out-of-proc node that doesn't @@ -325,7 +325,7 @@ public void TestNoNewNodesCreatedForMultipleRequestsWithSameConfiguration() BuildRequest request3 = CreateBuildRequest(3, 1, new string[] { "baz" }); BuildRequest request4 = CreateBuildRequest(4, 1, new string[] { "qux" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2, request3, request4 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2, request3, request4 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Single(response); @@ -351,7 +351,7 @@ public void TestMaxNodeCountNotExceededWithRequestsOfAffinityAny() BuildRequest request3 = CreateBuildRequest(3, 3, new string[] { "baz" }); BuildRequest request4 = CreateBuildRequest(4, 4, new string[] { "qux" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2, request3, request4 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2, request3, request4 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -388,14 +388,14 @@ public void VerifyRequestOrderingDoesNotAffectNodeCreationCountWithInProcAndAnyR _buildManager = new BuildManager(); CreateConfiguration(99, "parent.proj"); - _defaultParentRequest = CreateBuildRequest(99, 99, new string[] { }, null); + _defaultParentRequest = CreateBuildRequest(99, 99, Array.Empty(), null); CreateConfiguration(1, "foo.proj"); BuildRequest request1 = CreateBuildRequest(1, 1, new string[] { "foo" }, NodeAffinity.Any, _defaultParentRequest); BuildRequest request2 = CreateBuildRequest(2, 1, new string[] { "bar" }, NodeAffinity.InProc, _defaultParentRequest); BuildRequest request3 = CreateBuildRequest(3, 1, new string[] { "bar" }, NodeAffinity.InProc, _defaultParentRequest); - List response = new List(_scheduler.ReportRequestBlocked(1, new BuildRequestBlocker(-1, new string[] { }, new BuildRequest[] { _defaultParentRequest, request1, request2, request3 }))); + List response = new List(_scheduler.ReportRequestBlocked(1, new BuildRequestBlocker(-1, Array.Empty(), new BuildRequest[] { _defaultParentRequest, request1, request2, request3 }))); Assert.Single(response); Assert.Equal(ScheduleActionType.CreateNode, response[0].Action); Assert.Equal(NodeAffinity.InProc, response[0].RequiredNodeType); @@ -429,7 +429,7 @@ public void TestMaxNodeCountOOPNodesCreatedForOOPAffinitizedRequests() BuildRequest request3 = CreateBuildRequest(3, 3, new string[] { "baz" }, NodeAffinity.OutOfProc, _defaultParentRequest); BuildRequest request4 = CreateBuildRequest(4, 4, new string[] { "qux" }, NodeAffinity.OutOfProc, _defaultParentRequest); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2, request3, request4 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2, request3, request4 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); // Parent request is blocked by the fact that both child requests require the out-of-proc node that doesn't @@ -459,7 +459,7 @@ public void TestMaxNodeCountNodesNotExceededWithSomeOOPRequests1() BuildRequest request3 = CreateBuildRequest(3, 3, new string[] { "baz" }); BuildRequest request4 = CreateBuildRequest(4, 4, new string[] { "qux" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2, request3, request4 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2, request3, request4 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -489,7 +489,7 @@ public void TestMaxNodeCountNodesNotExceededWithSomeOOPRequests2() BuildRequest request3 = CreateBuildRequest(3, 3, new string[] { "baz" }); BuildRequest request4 = CreateBuildRequest(4, 4, new string[] { "qux" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2, request3, request4 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2, request3, request4 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -522,7 +522,7 @@ public void TestTraversalAffinityIsInProc() BuildRequest request1 = CreateBuildRequest(1, 1, new string[] { "foo" }, _defaultParentRequest); BuildRequest request2 = CreateBuildRequest(2, 2, new string[] { "bar" }, _defaultParentRequest); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); // There will be no request to create a new node, because both of the above requests are traversals, @@ -546,7 +546,7 @@ public void TestProxyAffinityIsInProc() BuildRequest request1 = CreateProxyBuildRequest(1, 1, new ProxyTargets(new Dictionary {{"foo", "bar"}}), null); - BuildRequestBlocker blocker = new BuildRequestBlocker(-1, new string[] { }, new[] { request1 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(-1, Array.Empty(), new[] { request1 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); // There will be no request to create a new node, because both of the above requests are proxy build requests, @@ -580,7 +580,7 @@ public void VerifyNoOverCreationOfNodesWithBuildLoop() _buildManager = new BuildManager(); CreateConfiguration(99, "parent.proj"); - _defaultParentRequest = CreateBuildRequest(99, 99, new string[] { }, null); + _defaultParentRequest = CreateBuildRequest(99, 99, Array.Empty(), null); CreateConfiguration(1, "foo.proj"); BuildRequest request1 = CreateBuildRequest(1, 1, new string[] { "foo" }, NodeAffinity.OutOfProc, _defaultParentRequest); @@ -589,7 +589,7 @@ public void VerifyNoOverCreationOfNodesWithBuildLoop() CreateConfiguration(3, "foo3.proj"); BuildRequest request3 = CreateBuildRequest(3, 3, new string[] { "bar" }, NodeAffinity.InProc, _defaultParentRequest); - List responses = new List(_scheduler.ReportRequestBlocked(1, new BuildRequestBlocker(-1, new string[] { }, new BuildRequest[] { _defaultParentRequest, request1, request2, request3 }))); + List responses = new List(_scheduler.ReportRequestBlocked(1, new BuildRequestBlocker(-1, Array.Empty(), new BuildRequest[] { _defaultParentRequest, request1, request2, request3 }))); int nextNodeId = 1; bool inProcNodeExists = false; @@ -608,7 +608,7 @@ public void TestTwoRequestsWithFirstFailure() BuildResult result1 = CacheBuildResult(request1, "foo", BuildResultUtilities.GetStopWithErrorResult()); BuildRequest request2 = CreateBuildRequest(2, 1, new string[] { "bar" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -627,7 +627,7 @@ public void TestTwoRequestsWithSecondFailure() BuildRequest request2 = CreateBuildRequest(2, 1, new string[] { "bar" }); BuildResult result2 = CacheBuildResult(request2, "bar", BuildResultUtilities.GetStopWithErrorResult()); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -647,7 +647,7 @@ public void TestThreeRequestsWithOneFailure() BuildResult result2 = CacheBuildResult(request2, "bar", BuildResultUtilities.GetStopWithErrorResult()); BuildRequest request3 = CreateBuildRequest(3, 1, new string[] { "baz" }); - BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request1, request2, request3 }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request1.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request1, request2, request3 }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); Assert.Equal(2, response.Count); @@ -663,7 +663,7 @@ public void TestResult() { CreateConfiguration(1, "foo.proj"); BuildRequest request = CreateBuildRequest(1, 1); - BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, new string[] { }, new BuildRequest[] { request }); + BuildRequestBlocker blocker = new BuildRequestBlocker(request.ParentGlobalRequestId, Array.Empty(), new BuildRequest[] { request }); List response = new List(_scheduler.ReportRequestBlocked(1, blocker)); BuildResult result = CreateBuildResult(request, "foo", BuildResultUtilities.GetSuccessResult()); @@ -710,7 +710,7 @@ public void TestDetailedSummary() /// private void CreateConfiguration(int configId, string file) { - BuildRequestData data = new BuildRequestData(file, new Dictionary(), "4.0", new string[] { }, null); + BuildRequestData data = new BuildRequestData(file, new Dictionary(), "4.0", Array.Empty(), null); BuildRequestConfiguration config = new BuildRequestConfiguration(configId, data, "4.0"); config.ProjectInitialTargets = new List(); config.ProjectDefaultTargets = new List(); @@ -735,7 +735,7 @@ private BuildResult CacheBuildResult(BuildRequest request, string target, WorkUn private BuildResult CreateBuildResult(BuildRequest request, string target, WorkUnitResult workUnitResult) { BuildResult result = new BuildResult(request); - result.AddResultsForTarget(target, new TargetResult(new TaskItem[] { }, workUnitResult)); + result.AddResultsForTarget(target, new TargetResult(Array.Empty(), workUnitResult)); return result; } @@ -744,7 +744,7 @@ private BuildResult CreateBuildResult(BuildRequest request, string target, WorkU /// private BuildRequest CreateBuildRequest(int nodeRequestId, int configId) { - return CreateBuildRequest(nodeRequestId, configId, new string[] { }); + return CreateBuildRequest(nodeRequestId, configId, Array.Empty()); } /// diff --git a/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs b/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs index 85949260a53..9e154e064f3 100644 --- a/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs +++ b/src/Build.UnitTests/BackEnd/TargetBuilder_Tests.cs @@ -1618,7 +1618,7 @@ private ProjectInstance CreateTestProject(string projectBodyContents, string ini } IConfigCache cache = (IConfigCache)_host.GetComponent(BuildComponentType.ConfigCache); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("testFile", new Dictionary(), "3.5", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("testFile", new Dictionary(), "3.5", Array.Empty(), null), "2.0"); Project project = new Project(XmlReader.Create(new StringReader(projectFileContents))); config.Project = project.CreateProjectInstance(); diff --git a/src/Build.UnitTests/BackEnd/TargetEntry_Tests.cs b/src/Build.UnitTests/BackEnd/TargetEntry_Tests.cs index 67e589b6ea8..3af162e85e4 100644 --- a/src/Build.UnitTests/BackEnd/TargetEntry_Tests.cs +++ b/src/Build.UnitTests/BackEnd/TargetEntry_Tests.cs @@ -80,7 +80,7 @@ public void TestConstructorNullTarget() Assert.Throws(() => { ProjectInstance project = CreateTestProject(true /* Returns enabled */); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); BuildRequestEntry requestEntry = new BuildRequestEntry(CreateNewBuildRequest(1, new string[] { "foo" }), config); Lookup lookup = new Lookup(new ItemDictionary(project.Items), new PropertyDictionary(project.Properties)); TargetEntry entry = new TargetEntry(requestEntry, this, null, lookup, null, TargetBuiltReason.None, _host, false); @@ -96,7 +96,7 @@ public void TestConstructorNullLookup() Assert.Throws(() => { ProjectInstance project = CreateTestProject(true /* Returns enabled */); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); BuildRequestEntry requestEntry = new BuildRequestEntry(CreateNewBuildRequest(1, new string[] { "foo" }), config); TargetEntry entry = new TargetEntry(requestEntry, this, new TargetSpecification("Empty", null), null, null, TargetBuiltReason.None, _host, false); } @@ -111,7 +111,7 @@ public void TestConstructorNullHost() Assert.Throws(() => { ProjectInstance project = CreateTestProject(true /* Returns enabled */); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); BuildRequestEntry requestEntry = new BuildRequestEntry(CreateNewBuildRequest(1, new string[] { "foo" }), config); Lookup lookup = new Lookup(new ItemDictionary(project.Items), new PropertyDictionary(project.Properties)); @@ -878,7 +878,7 @@ public void AfterTargetsShouldReportFailedBuild() project.FullPath, new Dictionary(), ObjectModelHelpers.MSBuildDefaultToolsVersion, - new string[] { }, + Array.Empty(), null); manager = new BuildManager(); BuildResult result = manager.Build(parameters, data); @@ -1025,7 +1025,7 @@ private BuildRequest CreateNewBuildRequest(int configurationId, string[] targets /// The new target entry private TargetEntry CreateStandardTargetEntry(ProjectInstance project, string targetName) { - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); config.Project = project; BuildRequestEntry requestEntry = new BuildRequestEntry(CreateNewBuildRequest(1, new string[] { "foo" }), config); @@ -1043,7 +1043,7 @@ private TargetEntry CreateStandardTargetEntry(ProjectInstance project, string ta /// The new target entry private TargetEntry CreateStandardTargetEntry(ProjectInstance project, string target, TargetEntry baseEntry) { - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary(), "foo", Array.Empty(), null), "2.0"); config.Project = project; BuildRequestEntry requestEntry = new BuildRequestEntry(CreateNewBuildRequest(1, new string[1] { "foo" }), config); TargetEntry entry = new TargetEntry(requestEntry, this, new TargetSpecification(target, project.Targets[target].Location), baseEntry.Lookup, baseEntry, TargetBuiltReason.None, _host, false); diff --git a/src/Build.UnitTests/BackEnd/TargetResult_Tests.cs b/src/Build.UnitTests/BackEnd/TargetResult_Tests.cs index 5ab96821f48..a4bcc061187 100644 --- a/src/Build.UnitTests/BackEnd/TargetResult_Tests.cs +++ b/src/Build.UnitTests/BackEnd/TargetResult_Tests.cs @@ -25,7 +25,7 @@ public class TargetResult_Tests [Fact] public void TestConstructorNoItems() { - TargetResult result = new TargetResult(new TaskItem[] { }, BuildResultUtilities.GetStopWithErrorResult()); + TargetResult result = new TargetResult(Array.Empty(), BuildResultUtilities.GetStopWithErrorResult()); Assert.Empty(result.Items); Assert.Null(result.Exception); Assert.Equal(TargetResultCode.Failure, result.ResultCode); diff --git a/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs b/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs index f9b99f90586..81fecb0da52 100644 --- a/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs +++ b/src/Build.UnitTests/BackEnd/TaskBuilderTestTask.cs @@ -272,7 +272,7 @@ public string[] EmptyStringArrayOutput get { _testTaskHost.OutputRead("EmptyStringArrayOutput", null); - return new string[0]; + return Array.Empty(); } } diff --git a/src/Build.UnitTests/BackEnd/TaskBuilder_Tests.cs b/src/Build.UnitTests/BackEnd/TaskBuilder_Tests.cs index c94468fdfe0..cf38ee562bd 100644 --- a/src/Build.UnitTests/BackEnd/TaskBuilder_Tests.cs +++ b/src/Build.UnitTests/BackEnd/TaskBuilder_Tests.cs @@ -1134,7 +1134,7 @@ private ProjectInstance CreateTestProject() "); IConfigCache cache = (IConfigCache)_host.GetComponent(BuildComponentType.ConfigCache); - BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("testfile", new Dictionary(), "3.5", new string[0], null), "2.0"); + BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("testfile", new Dictionary(), "3.5", Array.Empty(), null), "2.0"); Project project = new Project(XmlReader.Create(new StringReader(projectFileContents))); config.Project = project.CreateProjectInstance(); cache.AddConfiguration(config); diff --git a/src/Build.UnitTests/BackEnd/TaskExecutionHost_Tests.cs b/src/Build.UnitTests/BackEnd/TaskExecutionHost_Tests.cs index fe959902ca2..4482dda9bfa 100644 --- a/src/Build.UnitTests/BackEnd/TaskExecutionHost_Tests.cs +++ b/src/Build.UnitTests/BackEnd/TaskExecutionHost_Tests.cs @@ -899,7 +899,7 @@ public void TestOutputItemArrayToProperty() public void TestEmptyStringInStringArrayParameterIntoItemList() { SetTaskParameter("StringArrayParam", ""); - ValidateOutputItems("StringArrayOutput", new ITaskItem[] { }); + ValidateOutputItems("StringArrayOutput", Array.Empty()); } /// @@ -910,7 +910,7 @@ public void TestEmptyStringInStringArrayParameterIntoItemList() public void TestEmptyStringParameterIntoItemList() { SetTaskParameter("StringParam", ""); - ValidateOutputItems("StringOutput", new ITaskItem[] { }); + ValidateOutputItems("StringOutput", Array.Empty()); } /// @@ -919,7 +919,7 @@ public void TestEmptyStringParameterIntoItemList() [Fact] public void TestNullITaskItemArrayParameter() { - ValidateOutputItems("ItemArrayNullOutput", new ITaskItem[] { }); + ValidateOutputItems("ItemArrayNullOutput", Array.Empty()); } /// @@ -930,7 +930,7 @@ public void TestArrayListParameter() { Assert.Throws(() => { - ValidateOutputItems("ArrayListOutput", new ITaskItem[] { }); + ValidateOutputItems("ArrayListOutput", Array.Empty()); } ); } @@ -1205,7 +1205,7 @@ private void InitializeHost(bool throwOnExecute) itemsByName.Add(item2); _twoItems = new ITaskItem[] { new TaskItem(item), new TaskItem(item2) }; - _bucket = new ItemBucket(new string[0], new Dictionary(), new Lookup(itemsByName, new PropertyDictionary()), 0); + _bucket = new ItemBucket(Array.Empty(), new Dictionary(), new Lookup(itemsByName, new PropertyDictionary()), 0); _host.FindTask(null); _host.InitializeForBatch(talc, _bucket, null); _parametersSetOnTask = new Dictionary(StringComparer.OrdinalIgnoreCase); diff --git a/src/Build.UnitTests/BackEnd/TaskHost_Tests.cs b/src/Build.UnitTests/BackEnd/TaskHost_Tests.cs index be9b7d57893..03ef9611f6d 100644 --- a/src/Build.UnitTests/BackEnd/TaskHost_Tests.cs +++ b/src/Build.UnitTests/BackEnd/TaskHost_Tests.cs @@ -73,7 +73,7 @@ public TaskHost_Tests() _elementLocation = ElementLocation.Create("MockFile", 5, 5); BuildRequest buildRequest = new BuildRequest(1 /* submissionId */, 1, 1, new List(), null, BuildEventContext.Invalid, null); - BuildRequestConfiguration configuration = new BuildRequestConfiguration(1, new BuildRequestData("Nothing", new Dictionary(), "4.0", new string[0], null), "2.0"); + BuildRequestConfiguration configuration = new BuildRequestConfiguration(1, new BuildRequestData("Nothing", new Dictionary(), "4.0", Array.Empty(), null), "2.0"); configuration.Project = new ProjectInstance(ProjectRootElement.Create()); diff --git a/src/Build.UnitTests/BuildResultUtilities.cs b/src/Build.UnitTests/BuildResultUtilities.cs index d6f7661b224..b637deaee69 100644 --- a/src/Build.UnitTests/BuildResultUtilities.cs +++ b/src/Build.UnitTests/BuildResultUtilities.cs @@ -14,12 +14,12 @@ internal class BuildResultUtilities { public static TargetResult GetEmptyFailingTargetResult() { - return new TargetResult(new TaskItem[0] { }, BuildResultUtilities.GetStopWithErrorResult()); + return new TargetResult(Array.Empty(), BuildResultUtilities.GetStopWithErrorResult()); } public static TargetResult GetEmptySucceedingTargetResult() { - return new TargetResult(new TaskItem[0] { }, BuildResultUtilities.GetSuccessResult()); + return new TargetResult(Array.Empty(), BuildResultUtilities.GetSuccessResult()); } public static TargetResult GetNonEmptySucceedingTargetResult() diff --git a/src/Build.UnitTests/Construction/SolutionProjectGenerator_Tests.cs b/src/Build.UnitTests/Construction/SolutionProjectGenerator_Tests.cs index 124fd26cc45..793392a3fc0 100644 --- a/src/Build.UnitTests/Construction/SolutionProjectGenerator_Tests.cs +++ b/src/Build.UnitTests/Construction/SolutionProjectGenerator_Tests.cs @@ -1932,7 +1932,7 @@ public void BadFrameworkMonkierExpectBuildToFail() Dictionary globalProperties = new Dictionary(); globalProperties["Configuration"] = "Release"; - BuildRequestData request = new BuildRequestData(projectFilePath, globalProperties, ObjectModelHelpers.MSBuildDefaultToolsVersion, new string[0], null); + BuildRequestData request = new BuildRequestData(projectFilePath, globalProperties, ObjectModelHelpers.MSBuildDefaultToolsVersion, Array.Empty(), null); BuildResult result = buildManager.Build(parameters, request); Assert.Equal(BuildResultCode.Failure, result.OverallResult); // Build should complete successfully even with an invalid solution config if SkipInvalidConfigurations is true @@ -2020,7 +2020,7 @@ public void BadFrameworkMonkierExpectBuildToFail2() Dictionary globalProperties = new Dictionary(); globalProperties["Configuration"] = "Release"; - BuildRequestData request = new BuildRequestData(projectFilePath, globalProperties, ObjectModelHelpers.MSBuildDefaultToolsVersion, new string[0], null); + BuildRequestData request = new BuildRequestData(projectFilePath, globalProperties, ObjectModelHelpers.MSBuildDefaultToolsVersion, Array.Empty(), null); BuildResult result = buildManager.Build(parameters, request); Assert.Equal(BuildResultCode.Failure, result.OverallResult); // Build should complete successfully even with an invalid solution config if SkipInvalidConfigurations is true diff --git a/src/Build.UnitTests/Evaluation/ExpressionShredder_Tests.cs b/src/Build.UnitTests/Evaluation/ExpressionShredder_Tests.cs index 33f42d34883..674cf217083 100644 --- a/src/Build.UnitTests/Evaluation/ExpressionShredder_Tests.cs +++ b/src/Build.UnitTests/Evaluation/ExpressionShredder_Tests.cs @@ -443,7 +443,7 @@ private void VerifySplitSemiColonSeparatedList(string input, params string[] exp if (expected == null) { // passing "null" means you expect an empty array back - expected = new string[] { }; + expected = Array.Empty(); } Assert.Equal(actual, expected, StringComparer.Ordinal); diff --git a/src/Build.UnitTests/Evaluation/ItemEvaluation_Tests.cs b/src/Build.UnitTests/Evaluation/ItemEvaluation_Tests.cs index 694e901dbbc..f241ddefeb8 100644 --- a/src/Build.UnitTests/Evaluation/ItemEvaluation_Tests.cs +++ b/src/Build.UnitTests/Evaluation/ItemEvaluation_Tests.cs @@ -117,7 +117,7 @@ public void RemoveShouldPreserveIntermediaryReferences(string content) ObjectModelHelpers.AssertItems(new[] { "a", "b", "c" }, itemsForI, expectedMetadata); var itemsForI2 = items.Where(i => i.ItemType == "i2").ToList(); - ObjectModelHelpers.AssertItems(new string[0], itemsForI2); + ObjectModelHelpers.AssertItems(Array.Empty(), itemsForI2); } [Fact] diff --git a/src/Build.UnitTests/EvaluationProfiler_Tests.cs b/src/Build.UnitTests/EvaluationProfiler_Tests.cs index d92ea77aa5d..68be0395890 100644 --- a/src/Build.UnitTests/EvaluationProfiler_Tests.cs +++ b/src/Build.UnitTests/EvaluationProfiler_Tests.cs @@ -301,7 +301,7 @@ private ProfilerResult BuildAndGetProfilerResult(string projectContent, bool set var buildRequestData = new BuildRequestData( projectInstance, - new string[]{}, + Array.Empty(), projectCollection.HostServices); var result = _buildManager.Build(parameters, buildRequestData); diff --git a/src/Build.UnitTests/Graph/ProjectGraph_Tests.cs b/src/Build.UnitTests/Graph/ProjectGraph_Tests.cs index 80609e1b593..bbd45517005 100644 --- a/src/Build.UnitTests/Graph/ProjectGraph_Tests.cs +++ b/src/Build.UnitTests/Graph/ProjectGraph_Tests.cs @@ -1956,7 +1956,7 @@ public static IEnumerable AllNodesShouldHaveGraphBuildGlobalPropertyDa yield return new object[] { new Dictionary(), - new int[] {}, + Array.Empty(), globalVariables }; @@ -2091,7 +2091,7 @@ public static IEnumerable TransitiveReferencesAreDefinedPerProjectTest {1, new[] {2, 3, 4}}, {2, new[] {3}}, {3, new[] {4}}, - {4, new int[0]} + {4, Array.Empty()} } }; @@ -2156,7 +2156,7 @@ public static IEnumerable TransitiveReferencesAreDefinedPerProjectTest {3, new[] {4, 5, 6}}, {4, new[] {5}}, {5, new[] {6}}, - {6, new int[0]}, + {6, Array.Empty()}, } }; } @@ -2232,7 +2232,7 @@ public void TransitiveReferencesShouldNotBeAddedToOuterBuilds() GetFirstNodeWithProjectNumber(graph, 2).AssertReferencesIgnoringOrder(new []{3, 4, 4, 4, 5, 6, 6, 6}); - GetOuterBuild(graph, 4).AssertReferencesIgnoringOrder(new int[0]); + GetOuterBuild(graph, 4).AssertReferencesIgnoringOrder(Array.Empty()); var innerBuilds4 = GetInnerBuilds(graph, 4); innerBuilds4.Count.ShouldBe(2); diff --git a/src/Build.UnitTests/Instance/HostServices_Tests.cs b/src/Build.UnitTests/Instance/HostServices_Tests.cs index eb54fc972e4..9d9f4b033ab 100644 --- a/src/Build.UnitTests/Instance/HostServices_Tests.cs +++ b/src/Build.UnitTests/Instance/HostServices_Tests.cs @@ -400,10 +400,10 @@ public void TestProjectInstanceWithNonConflictingHostServices() HostServices hostServices = new HostServices(); ProjectInstance project = CreateDummyProject("foo.proj"); - BuildRequestData data = new BuildRequestData(project, new string[] { }, hostServices); + BuildRequestData data = new BuildRequestData(project, Array.Empty(), hostServices); hostServices.SetNodeAffinity(project.FullPath, NodeAffinity.InProc); - BuildRequestData data2 = new BuildRequestData(project, new string[] { }, hostServices); + BuildRequestData data2 = new BuildRequestData(project, Array.Empty(), hostServices); } /// diff --git a/src/Build.UnitTests/Instance/ProjectTargetInstance_Internal_Tests.cs b/src/Build.UnitTests/Instance/ProjectTargetInstance_Internal_Tests.cs index d24d65f35d3..924d55be3f5 100644 --- a/src/Build.UnitTests/Instance/ProjectTargetInstance_Internal_Tests.cs +++ b/src/Build.UnitTests/Instance/ProjectTargetInstance_Internal_Tests.cs @@ -28,8 +28,8 @@ public static IEnumerable TargetChildrenTestData yield return new object[] { - new ReadOnlyCollection(new ProjectTargetInstanceChild[0]), - new ReadOnlyCollection(new ProjectOnErrorInstance[0]) + new ReadOnlyCollection(System.Array.Empty()), + new ReadOnlyCollection(System.Array.Empty()) }; yield return new object[] diff --git a/src/Build/Utilities/NuGetFrameworkWrapper.cs b/src/Build/Utilities/NuGetFrameworkWrapper.cs index 4dd0453f567..251433163b0 100644 --- a/src/Build/Utilities/NuGetFrameworkWrapper.cs +++ b/src/Build/Utilities/NuGetFrameworkWrapper.cs @@ -42,7 +42,7 @@ public NuGetFrameworkWrapper() var NuGetFrameworkDefaultCompatibilityProvider = NuGetAssembly.GetType("NuGet.Frameworks.DefaultCompatibilityProvider"); ParseMethod = NuGetFramework.GetMethod("Parse", new Type[] { typeof(string) }); IsCompatibleMethod = NuGetFrameworkCompatibilityProvider.GetMethod("IsCompatible"); - DefaultCompatibilityProvider = NuGetFrameworkDefaultCompatibilityProvider.GetMethod("get_Instance").Invoke(null, new object[] { }); + DefaultCompatibilityProvider = NuGetFrameworkDefaultCompatibilityProvider.GetMethod("get_Instance").Invoke(null, Array.Empty()); FrameworkProperty = NuGetFramework.GetProperty("Framework"); VersionProperty = NuGetFramework.GetProperty("Version"); PlatformProperty = NuGetFramework.GetProperty("Platform"); diff --git a/src/MSBuild.UnitTests/CommandLineSwitches_Tests.cs b/src/MSBuild.UnitTests/CommandLineSwitches_Tests.cs index 56740ebea60..34aec399d2e 100644 --- a/src/MSBuild.UnitTests/CommandLineSwitches_Tests.cs +++ b/src/MSBuild.UnitTests/CommandLineSwitches_Tests.cs @@ -562,7 +562,7 @@ public void GraphBuildSwitchCanBeParameterless() MSBuildApp.GatherCommandLineSwitches(new List{ "/graph" }, switches); - switches[CommandLineSwitches.ParameterizedSwitch.GraphBuild].ShouldBe(new string[0]); + switches[CommandLineSwitches.ParameterizedSwitch.GraphBuild].ShouldBe(Array.Empty()); switches.HaveErrors().ShouldBeFalse(); } @@ -983,9 +983,9 @@ public void InvalidToolsVersionErrors() "ScoobyDoo", new Dictionary(StringComparer.OrdinalIgnoreCase), new Dictionary(StringComparer.OrdinalIgnoreCase), - new ILogger[] { }, + Array.Empty(), LoggerVerbosity.Normal, - new DistributedLoggerRecord[] { }, + Array.Empty(), #if FEATURE_XML_SCHEMA_VALIDATION false, null, @@ -1225,9 +1225,9 @@ public void ProcessProfileEvaluationEmpty() [Fact] public void ProcessBooleanSwitchTest() { - MSBuildApp.ProcessBooleanSwitch(new string[0], defaultValue: true, resourceName: null).ShouldBeTrue(); + MSBuildApp.ProcessBooleanSwitch(Array.Empty(), defaultValue: true, resourceName: null).ShouldBeTrue(); - MSBuildApp.ProcessBooleanSwitch(new string[0], defaultValue: false, resourceName: null).ShouldBeFalse(); + MSBuildApp.ProcessBooleanSwitch(Array.Empty(), defaultValue: false, resourceName: null).ShouldBeFalse(); MSBuildApp.ProcessBooleanSwitch(new [] { "true" }, defaultValue: false, resourceName: null).ShouldBeTrue(); @@ -1241,7 +1241,7 @@ public static IEnumerable ProcessGraphBuildSwitchData() var emptyOptions = new GraphBuildOptions(); var noBuildOptions = new GraphBuildOptions {Build = false}; - yield return new object[] {new string[0], emptyOptions, null}; + yield return new object[] {Array.Empty(), emptyOptions, null}; yield return new object[] {new[] {"true"}, emptyOptions, null}; diff --git a/src/MSBuild.UnitTests/ProjectSchemaValidationHandler_Tests.cs b/src/MSBuild.UnitTests/ProjectSchemaValidationHandler_Tests.cs index 3885423a888..4b2255418e0 100644 --- a/src/MSBuild.UnitTests/ProjectSchemaValidationHandler_Tests.cs +++ b/src/MSBuild.UnitTests/ProjectSchemaValidationHandler_Tests.cs @@ -32,7 +32,7 @@ public void VerifyInvalidProjectSchema ( ) { - string[] msbuildTempXsdFilenames = new string[] { }; + string[] msbuildTempXsdFilenames = Array.Empty(); string projectFilename = null; string oldValueForMSBuildOldOM = null; try @@ -167,7 +167,7 @@ public void VerifyValidProjectSchema ( ) { - string[] msbuildTempXsdFilenames = new string[] { }; + string[] msbuildTempXsdFilenames = Array.Empty(); string projectFilename = CreateTempFileOnDisk(@" @@ -211,7 +211,7 @@ public void VerifyInvalidImportNotCaughtBySchema ( ) { - string[] msbuildTempXsdFilenames = new string[] { }; + string[] msbuildTempXsdFilenames = Array.Empty(); string importedProjectFilename = CreateTempFileOnDisk(@" diff --git a/src/MSBuild.UnitTests/XMake_Tests.cs b/src/MSBuild.UnitTests/XMake_Tests.cs index 2f7596e1496..16805bcb677 100644 --- a/src/MSBuild.UnitTests/XMake_Tests.cs +++ b/src/MSBuild.UnitTests/XMake_Tests.cs @@ -1332,7 +1332,7 @@ public void TestProcessProjectSwitchOneProjNotFoundExtension() string[] projects = { "my.proj" }; string[] extensionsToIgnore = { ".phantomextension" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" } /// @@ -1344,7 +1344,7 @@ public void TestTwoIdenticalExtensionsToIgnore() string[] projects = { "my.proj" }; string[] extensionsToIgnore = { ".phantomextension", ".phantomextension" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" } /// @@ -1356,10 +1356,10 @@ public void TestProcessProjectSwitchNullandEmptyProjectsToIgnore() string[] projects = { "my.proj" }; string[] extensionsToIgnore = null; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" - extensionsToIgnore = new string[] { }; - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" + extensionsToIgnore = Array.Empty(); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" } /// @@ -1373,7 +1373,7 @@ public void TestProcessProjectSwitchNullInList() string[] projects = { "my.proj" }; string[] extensionsToIgnore = { ".phantomextension", null }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" } ); } @@ -1389,7 +1389,7 @@ public void TestProcessProjectSwitchEmptyInList() string[] projects = { "my.proj" }; string[] extensionsToIgnore = { ".phantomextension", string.Empty }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" } ); } @@ -1404,7 +1404,7 @@ public void TestProcessProjectSwitchExtensionWithoutDot() string[] projects = { "my.proj" }; string[] extensionsToIgnore = { "phantomextension" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); } ); } @@ -1419,7 +1419,7 @@ public void TestProcessProjectSwitchMalformed() string[] projects = { "my.proj" }; string[] extensionsToIgnore = { ".C:\\boocatmoo.a" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("my.proj", StringCompareShould.IgnoreCase); // "Expected my.proj to be only project found" } ); } @@ -1434,7 +1434,7 @@ public void TestProcessProjectSwitchWildcards() string[] projects = { "my.proj" }; string[] extensionsToIgnore = { ".proj*", ".nativeproj?" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -1444,52 +1444,52 @@ public void TestProcessProjectSwitch() string[] projects = { "test.nativeproj", "test.vcproj" }; string[] extensionsToIgnore = { ".phantomextension", ".vcproj" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.nativeproj", StringCompareShould.IgnoreCase); // "Expected test.nativeproj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.nativeproj", StringCompareShould.IgnoreCase); // "Expected test.nativeproj to be only project found" projects = new[] { "test.nativeproj", "test.vcproj", "test.proj" }; extensionsToIgnore = new[] { ".phantomextension", ".vcproj" }; projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj", StringCompareShould.IgnoreCase); // "Expected test.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj", StringCompareShould.IgnoreCase); // "Expected test.proj to be only project found" projects = new[] { "test.nativeproj", "test.vcproj" }; extensionsToIgnore = new[] { ".vcproj" }; projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.nativeproj", StringCompareShould.IgnoreCase); // "Expected test.nativeproj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.nativeproj", StringCompareShould.IgnoreCase); // "Expected test.nativeproj to be only project found" projects = new[] { "test.proj", "test.sln" }; extensionsToIgnore = new[] { ".vcproj" }; projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" projects = new[] { "test.proj", "test.sln", "test.proj~", "test.sln~" }; - extensionsToIgnore = new string[] { }; + extensionsToIgnore = Array.Empty(); projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" projects = new[] { "test.proj" }; - extensionsToIgnore = new string[] { }; + extensionsToIgnore = Array.Empty(); projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj", StringCompareShould.IgnoreCase); // "Expected test.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj", StringCompareShould.IgnoreCase); // "Expected test.proj to be only project found" projects = new[] { "test.proj", "test.proj~" }; - extensionsToIgnore = new string[] { }; + extensionsToIgnore = Array.Empty(); projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj", StringCompareShould.IgnoreCase); // "Expected test.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj", StringCompareShould.IgnoreCase); // "Expected test.proj to be only project found" projects = new[] { "test.sln" }; - extensionsToIgnore = new string[] { }; + extensionsToIgnore = Array.Empty(); projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" projects = new[] { "test.sln", "test.sln~" }; - extensionsToIgnore = new string[] { }; + extensionsToIgnore = Array.Empty(); projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" projects = new[] { "test.sln~", "test.sln" }; - extensionsToIgnore = new string[] { }; + extensionsToIgnore = Array.Empty(); projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.sln", StringCompareShould.IgnoreCase); // "Expected test.sln to be only solution found" } /// @@ -1501,7 +1501,7 @@ public void TestProcessProjectSwitchReplicateBuildingDFLKG() string[] projects = { "test.proj", "test.sln", "Foo.vcproj" }; string[] extensionsToIgnore = { ".sln", ".vcproj" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj"); // "Expected test.proj to be only project found" + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles).ShouldBe("test.proj"); // "Expected test.proj to be only project found" } /// @@ -1515,7 +1515,7 @@ public void TestProcessProjectSwitchRemovedAllprojects() var projects = new[] { "test.nativeproj", "test.vcproj" }; var extensionsToIgnore = new[] { ".nativeproj", ".vcproj" }; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -1530,7 +1530,7 @@ public void TestProcessProjectSwitchSlnProjDifferentNames() string[] projects = { "test.proj", "Different.sln" }; string[] extensionsToIgnore = null; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -1545,7 +1545,7 @@ public void TestProcessProjectSwitchTwoProj() string[] projects = { "test.proj", "Different.proj" }; string[] extensionsToIgnore = null; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -1560,7 +1560,7 @@ public void TestProcessProjectSwitchTwoNative() string[] projects = { "test.nativeproj", "Different.nativeproj" }; string[] extensionsToIgnore = null; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -1575,7 +1575,7 @@ public void TestProcessProjectSwitchTwoSolutions() string[] projects = { "test.sln", "Different.sln" }; string[] extensionsToIgnore = null; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -1590,7 +1590,7 @@ public void TestProcessProjectSwitchMoreThenTwoProj() string[] projects = { "test.nativeproj", "Different.csproj", "Another.proj" }; string[] extensionsToIgnore = null; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -1602,10 +1602,10 @@ public void TestProcessProjectSwitchNoProjectOrSolution() { Should.Throw(() => { - string[] projects = { }; + string[] projects = Array.Empty(); string[] extensionsToIgnore = null; IgnoreProjectExtensionsHelper projectHelper = new IgnoreProjectExtensionsHelper(projects); - MSBuildApp.ProcessProjectSwitch(new string[] { }, extensionsToIgnore, projectHelper.GetFiles); + MSBuildApp.ProcessProjectSwitch(Array.Empty(), extensionsToIgnore, projectHelper.GetFiles); } ); } @@ -2487,7 +2487,7 @@ private string ExecuteMSBuildExeExpectFailure(string projectContents, IDictionar private (bool result, string output) ExecuteMSBuildExe(string projectContents, IDictionary filesToCreate = null, IDictionary envsToCreate = null, params string[] arguments) { - TransientTestProjectWithFiles testProject = _env.CreateTestProjectWithFiles(projectContents, new string[0]); + TransientTestProjectWithFiles testProject = _env.CreateTestProjectWithFiles(projectContents, Array.Empty()); if (filesToCreate != null) { diff --git a/src/MSBuild/CommandLineSwitches.cs b/src/MSBuild/CommandLineSwitches.cs index 117880c451b..07bfbacf461 100644 --- a/src/MSBuild/CommandLineSwitches.cs +++ b/src/MSBuild/CommandLineSwitches.cs @@ -599,7 +599,7 @@ internal bool IsParameterizedSwitchSet(ParameterizedSwitch parameterizedSwitch) } // used to indicate a null parameter list for a switch - private static readonly string[] s_noParameters = { }; + private static readonly string[] s_noParameters = Array.Empty(); /// /// Gets the parameters (if any) detected on the command line for the given parameterized switch. diff --git a/src/MSBuild/XMake.cs b/src/MSBuild/XMake.cs index 63b6f3590e4..f060c6ea53b 100644 --- a/src/MSBuild/XMake.cs +++ b/src/MSBuild/XMake.cs @@ -541,11 +541,11 @@ string [] commandLine // process the detected command line switches -- gather build information, take action on non-build switches, and // check for non-trivial errors string projectFile = null; - string[] targets = { }; + string[] targets = Array.Empty(); string toolsVersion = null; Dictionary globalProperties = null; Dictionary restoreProperties = null; - ILogger[] loggers = { }; + ILogger[] loggers = Array.Empty(); LoggerVerbosity verbosity = LoggerVerbosity.Normal; List distributedLoggerRecords = null; #if FEATURE_XML_SCHEMA_VALIDATION diff --git a/src/Shared/AssemblyNameExtension.cs b/src/Shared/AssemblyNameExtension.cs index f5f54c7e08d..9c5cf7136fb 100644 --- a/src/Shared/AssemblyNameExtension.cs +++ b/src/Shared/AssemblyNameExtension.cs @@ -822,11 +822,15 @@ internal static bool ComparePublicKeyTokens(byte[] aPKT, byte[] bPKT) // Some assemblies (real case was interop assembly) may have null PKTs. if (aPKT == null) { +#pragma warning disable CA1825 // Avoid zero-length array allocations aPKT = new byte[0]; +#pragma warning restore CA1825 // Avoid zero-length array allocations } if (bPKT == null) { +#pragma warning disable CA1825 // Avoid zero-length array allocations bPKT = new byte[0]; +#pragma warning restore CA1825 // Avoid zero-length array allocations } if (aPKT.Length != bPKT.Length) diff --git a/src/Shared/BinaryTranslator.cs b/src/Shared/BinaryTranslator.cs index 0991fe3a5b2..b1540445884 100644 --- a/src/Shared/BinaryTranslator.cs +++ b/src/Shared/BinaryTranslator.cs @@ -199,7 +199,9 @@ public void Translate(ref byte[] byteArray) } else { +#pragma warning disable CA1825 // Avoid zero-length array allocations byteArray = new byte[0]; +#pragma warning restore CA1825 // Avoid zero-length array allocations } } diff --git a/src/Shared/UnitTests/FileMatcher_Tests.cs b/src/Shared/UnitTests/FileMatcher_Tests.cs index e1f0567d8e2..3db0b4190f7 100644 --- a/src/Shared/UnitTests/FileMatcher_Tests.cs +++ b/src/Shared/UnitTests/FileMatcher_Tests.cs @@ -1294,7 +1294,7 @@ public void Regress367780_CrashOnStarDotDot() string workingPath = _env.CreateFolder().Path; string workingPathSubfolder = Path.Combine(workingPath, "SubDir"); string offendingPattern = Path.Combine(workingPath, @"*\..\bar"); - string[] files = new string[0]; + string[] files = Array.Empty(); Directory.CreateDirectory(workingPath); Directory.CreateDirectory(workingPathSubfolder); @@ -1520,9 +1520,7 @@ public void ExcludeSpecificFiles() @"Program_old.cs", @"Properties\AssemblyInfo_old.cs" }, - new string[] // Non matching files that shouldn't be touched - { - } + Array.Empty() // Non matching files that shouldn't be touched ); } diff --git a/src/Shared/UnitTests/ObjectModelHelpers.cs b/src/Shared/UnitTests/ObjectModelHelpers.cs index f10c107310f..e5c79ae5a3a 100644 --- a/src/Shared/UnitTests/ObjectModelHelpers.cs +++ b/src/Shared/UnitTests/ObjectModelHelpers.cs @@ -1410,7 +1410,7 @@ public static BuildResult BuildProjectFileUsingBuildManager(string projectFile, projectFile, new Dictionary(), MSBuildConstants.CurrentToolsVersion, - new string[] {}, + Array.Empty(), null); var result = buildManager.Build( @@ -1984,7 +1984,7 @@ public async Task BuildProjectFileAsync( var buildRequestData = new BuildRequestData(projectFile, globalProperties ?? new Dictionary(), MSBuildConstants.CurrentToolsVersion, - entryTargets ?? new string[0], + entryTargets ?? Array.Empty(), null); var completion = new TaskCompletionSource(); @@ -2004,7 +2004,7 @@ public GraphBuildResult BuildGraphSubmission(GraphBuildRequestData requestData) public GraphBuildResult BuildGraph(ProjectGraph graph, string[] entryTargets = null) { - return _buildManager.BuildRequest(new GraphBuildRequestData(graph, entryTargets ?? new string[0])); + return _buildManager.BuildRequest(new GraphBuildRequestData(graph, entryTargets ?? Array.Empty())); } public void Dispose() diff --git a/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs b/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs index 43d5d72d66d..e8e88138800 100644 --- a/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs +++ b/src/Tasks.UnitTests/AssemblyDependency/Miscellaneous.cs @@ -3314,7 +3314,7 @@ public void ParentAssemblyResolvedFromAForGac() /// private ReferenceTable GenerateTableWithAssemblyFromTheGlobalLocation(string location) { - ReferenceTable referenceTable = new ReferenceTable(null, false, false, false, false, new string[0], null, null, null, null, null, null, SystemProcessorArchitecture.None, fileExists, null, null, null, null, + ReferenceTable referenceTable = new ReferenceTable(null, false, false, false, false, Array.Empty(), null, null, null, null, null, null, SystemProcessorArchitecture.None, fileExists, null, null, null, null, #if FEATURE_WIN32_REGISTRY null, null, null, #endif @@ -3516,7 +3516,7 @@ public void NoFrameworkDirectoriesStillCopyLocal() t.BuildEngine = engine; t.Assemblies = assemblyNames; - t.TargetFrameworkDirectories = new string[] { }; + t.TargetFrameworkDirectories = Array.Empty(); t.SearchPaths = new string[] { "{RawFileName}" }; Execute(t); Assert.Equal(@"true", t.ResolvedFiles[0].GetMetadata("CopyLocal")); @@ -5639,10 +5639,10 @@ public void GetRedistListPathsFromDisk_ThrowsArgumentNullException() [Fact] public void RedistListGenerateBlackListEmptyAssemblyInfoNoRedistAssemblies() { - RedistList redistList = RedistList.GetRedistList(new AssemblyTableInfo[0]); + RedistList redistList = RedistList.GetRedistList(Array.Empty()); List whiteListErrors = new List(); List whiteListErrorFileNames = new List(); - Dictionary blackList = redistList.GenerateBlackList(new AssemblyTableInfo[0], whiteListErrors, whiteListErrorFileNames); + Dictionary blackList = redistList.GenerateBlackList(Array.Empty(), whiteListErrors, whiteListErrorFileNames); Assert.Null(blackList); // "Should return null if the AssemblyTableInfo is empty and the redist list is empty" } @@ -5660,7 +5660,7 @@ public void RedistListGenerateBlackListEmptyAssemblyInfoWithRedistAssemblies() RedistList redistList = RedistList.GetRedistList(new AssemblyTableInfo[] { redistListInfo }); List whiteListErrors = new List(); List whiteListErrorFileNames = new List(); - Dictionary blackList = redistList.GenerateBlackList(new AssemblyTableInfo[0], whiteListErrors, whiteListErrorFileNames); + Dictionary blackList = redistList.GenerateBlackList(Array.Empty(), whiteListErrors, whiteListErrorFileNames); // Since there were no white list expect the black list to return null Assert.Empty(blackList); // "Expected to have no assemblies in the black list" @@ -6208,7 +6208,7 @@ public void SubsetListFinderNullFrameworkDirectory() { Assert.Throws(() => { - SubsetListFinder finder = new SubsetListFinder(new string[0]); + SubsetListFinder finder = new SubsetListFinder(Array.Empty()); finder.GetSubsetListPathsFromDisk(null); } ); @@ -6231,7 +6231,7 @@ public void SubsetListFinderNullSubsetToSearchFor() [Fact] public void SubsetListFinderEmptySubsetToSearchFor() { - SubsetListFinder finder = new SubsetListFinder(new string[0]); + SubsetListFinder finder = new SubsetListFinder(Array.Empty()); string[] returnArray = finder.GetSubsetListPathsFromDisk("FrameworkDirectory"); Assert.Empty(returnArray); // "Expected the array returned to be 0 length" } @@ -6528,7 +6528,7 @@ public void TestGenerateFrameworkName() targetFrameworks = new string[] { "Client", "Framework" }; Assert.Equal("Client, Framework", ResolveAssemblyReference.GenerateSubSetName(targetFrameworks, null)); - targetFrameworks = new string[0]; + targetFrameworks = Array.Empty(); Assert.True(String.IsNullOrEmpty(ResolveAssemblyReference.GenerateSubSetName(targetFrameworks, null))); targetFrameworks = null; @@ -6543,7 +6543,7 @@ public void TestGenerateFrameworkName() installedSubSetTable = new ITaskItem[] { new TaskItem("c:\\foo\\Client.xml"), new TaskItem("D:\\foo\\bar\\Framework2\\"), new TaskItem("D:\\foo\\bar\\Framework"), new TaskItem("Nothing") }; Assert.Equal("Client, Framework, Nothing", ResolveAssemblyReference.GenerateSubSetName(null, installedSubSetTable)); - installedSubSetTable = new ITaskItem[0]; + installedSubSetTable = Array.Empty(); Assert.True(String.IsNullOrEmpty(ResolveAssemblyReference.GenerateSubSetName(null, installedSubSetTable))); installedSubSetTable = null; @@ -6582,7 +6582,7 @@ public void ReferenceTablePrimaryItemInBlackListRemoveOnlyNoWarn() referenceTable.RemoveReferencesMarkedForExclusion(true, String.Empty); Dictionary table2 = referenceTable.References; - string subSetName = ResolveAssemblyReference.GenerateSubSetName(new string[] { }, null); + string subSetName = ResolveAssemblyReference.GenerateSubSetName(Array.Empty(), null); string warningMessage = rar.Log.FormatResourceString("ResolveAssemblyReference.FailedToResolveReferenceBecausePrimaryAssemblyInExclusionList", taskItem.ItemSpec, subSetName); Assert.False(Object.ReferenceEquals(table, table2)); // "Expected dictionary to be a different instance" Assert.Single(table2); // "Expected there to be one elements in the dictionary" @@ -6819,7 +6819,7 @@ public void ReferenceTableDependentItemsInBlackList3() [Fact] public void ReferenceTableDependentItemsInBlackList4() { - ReferenceTable referenceTable = new ReferenceTable(null, false, false, false, false, new string[0], null, null, null, null, null, null, SystemProcessorArchitecture.None, fileExists, null, null, null, + ReferenceTable referenceTable = new ReferenceTable(null, false, false, false, false, Array.Empty(), null, null, null, null, null, null, SystemProcessorArchitecture.None, fileExists, null, null, null, #if FEATURE_WIN32_REGISTRY null, null, null, #endif @@ -6997,7 +6997,7 @@ public void ReferenceTableDependentItemsInBlackListPrimaryWithSpecificVersion() private static ReferenceTable MakeEmptyReferenceTable(TaskLoggingHelper log) { - ReferenceTable referenceTable = new ReferenceTable(null, false, false, false, false, new string[0], null, null, null, null, null, null, SystemProcessorArchitecture.None, fileExists, null, null, null, null, + ReferenceTable referenceTable = new ReferenceTable(null, false, false, false, false, Array.Empty(), null, null, null, null, null, null, SystemProcessorArchitecture.None, fileExists, null, null, null, null, #if FEATURE_WIN32_REGISTRY null, null, null, #endif @@ -7319,7 +7319,7 @@ public void NoClientSubsetButInstalledSubTables() t.TargetFrameworkDirectories = new string[] { Path.Combine(ObjectModelHelpers.TempProjectDir, "v3.5") }; t.InstalledAssemblyTables = new ITaskItem[] { new TaskItem(redistListPath) }; // Only the explicitly specified redist list should be used - t.TargetFrameworkSubsets = new string[0]; + t.TargetFrameworkSubsets = Array.Empty(); // Create a subset list which should be read in string explicitSubsetListContents = diff --git a/src/Tasks.UnitTests/AssemblyDependency/ResolveAssemblyReferenceTestFixture.cs b/src/Tasks.UnitTests/AssemblyDependency/ResolveAssemblyReferenceTestFixture.cs index 25af267106c..897f629463e 100644 --- a/src/Tasks.UnitTests/AssemblyDependency/ResolveAssemblyReferenceTestFixture.cs +++ b/src/Tasks.UnitTests/AssemblyDependency/ResolveAssemblyReferenceTestFixture.cs @@ -916,7 +916,7 @@ internal static string[] GetDirectories(string path, string pattern) }; } - return new string[0]; + return Array.Empty(); } /// @@ -1987,7 +1987,7 @@ internal static AssemblyNameExtension[] GetDependencies(string path) if (String.Equals(path, @"c:\Regress313086\mscorlib.dll", StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[] { }; + return Array.Empty(); } if (String.Equals(path, Path.Combine(s_myVersion20Path, "System.dll"), StringComparison.OrdinalIgnoreCase)) @@ -2090,16 +2090,12 @@ internal static AssemblyNameExtension[] GetDependencies(string path) || String.Equals(path, Path.Combine(s_myVersionPocket20Path, "mscorlib.dll"), StringComparison.OrdinalIgnoreCase) ) { - return new AssemblyNameExtension[] - { - }; + return Array.Empty(); } if (String.Equals(path, @"MyRelativeAssembly.dll", StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[] - { - }; + return Array.Empty(); } if (String.Equals(path, Path.Combine(s_myAppRootPath, "DependsOnSimpleA.dll"), StringComparison.OrdinalIgnoreCase)) @@ -2208,9 +2204,7 @@ internal static AssemblyNameExtension[] GetDependencies(string path) if (String.Equals(path, s_myLibraries_V1_E_EDllPath, StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[] - { - }; + return Array.Empty(); } if (String.Equals(path, Path.Combine(s_myApp_V05Path, "DependsOnWeaklyNamedUnified.dll"), StringComparison.OrdinalIgnoreCase)) @@ -2356,7 +2350,7 @@ internal static AssemblyNameExtension[] GetDependencies(string path) if (String.Equals(path, Path.Combine(s_myComponents2RootPath, "W.dll"), StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[] { }; + return Array.Empty(); } if (String.Equals(path, Path.Combine(s_myComponentsRootPath, "X.dll"), StringComparison.OrdinalIgnoreCase)) @@ -2369,7 +2363,7 @@ internal static AssemblyNameExtension[] GetDependencies(string path) if (String.Equals(path, Path.Combine(s_myComponentsRootPath, "Z.dll"), StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[] { }; + return Array.Empty(); } if (String.Equals(path, Path.Combine(s_myComponentsRootPath, "Y.dll"), StringComparison.OrdinalIgnoreCase)) @@ -2382,7 +2376,7 @@ internal static AssemblyNameExtension[] GetDependencies(string path) if (String.Equals(path, Path.Combine(s_myComponentsRootPath, "Microsoft.Build.dll"), StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[] { }; + return Array.Empty(); } if (String.Equals(path, Path.Combine(s_myComponentsRootPath, "DependsOnMSBuild12.dll"), StringComparison.OrdinalIgnoreCase)) @@ -2441,7 +2435,7 @@ internal static AssemblyNameExtension[] GetDependencies(string path) if (String.Equals(path, @"C:\DirectoryContainsdllAndWinmd\c.winmd", StringComparison.OrdinalIgnoreCase)) { // Simulate a strongly named assembly. - return new AssemblyNameExtension[0]; + return Array.Empty(); } if (String.Equals(path, @"C:\DirectoryContainstwoWinmd\a.winmd", StringComparison.OrdinalIgnoreCase)) @@ -2455,12 +2449,12 @@ internal static AssemblyNameExtension[] GetDependencies(string path) if (String.Equals(path, @"C:\DirectoryContainstwoWinmd\c.winmd", StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[0]; + return Array.Empty(); } if (path.StartsWith(@"C:\FakeSDK\", StringComparison.OrdinalIgnoreCase)) { - return new AssemblyNameExtension[0]; + return Array.Empty(); } if (String.Equals(path, s_portableDllPath, StringComparison.OrdinalIgnoreCase)) @@ -2528,49 +2522,49 @@ private static IEnumerable GetRegistrySubKeyNames(RegistryKey baseKey, s { if (String.Equals(subKey, @"Software\Regress714052", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\AssemblyFoldersEx", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\X86", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\MSIL", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\Mix", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\Mix\Mix", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\None", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\X86\X86", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\MSIL\MSIL", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\None\None", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Microsoft\.NetFramework", StringComparison.OrdinalIgnoreCase)) @@ -2611,7 +2605,7 @@ private static IEnumerable GetRegistrySubKeyNames(RegistryKey baseKey, s || String.Equals(subKey, @"Software\Microsoft\.NetFramework\v2.0.50727\AssemblyFoldersEx\ZControlB", StringComparison.OrdinalIgnoreCase) ) { - return new string[] { }; + return Array.Empty(); } if @@ -2668,12 +2662,12 @@ private static IEnumerable GetRegistrySubKeyNames(RegistryKey baseKey, s if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\AssemblyFoldersEx\A", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\AssemblyFoldersEx\B", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\X86", StringComparison.OrdinalIgnoreCase)) { @@ -2697,21 +2691,21 @@ private static IEnumerable GetRegistrySubKeyNames(RegistryKey baseKey, s if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\Mix\Mix", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\X86\X86", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\MSIL\MSIL", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Regress714052\v2.0.0\None\None", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Microsoft\.NetFramework", StringComparison.OrdinalIgnoreCase)) @@ -2726,12 +2720,12 @@ private static IEnumerable GetRegistrySubKeyNames(RegistryKey baseKey, s if (String.Equals(subKey, @"Software\Microsoft\.NetFramework\v2.0.50727\AssemblyFoldersEx\Infragistics.FancyControl.1.0", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Microsoft\.NetFramework\v2.0.50727\AssemblyFoldersEx\Infragistics.MyHKLMControl.1.0", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Microsoft\.NETCompactFramework", StringComparison.OrdinalIgnoreCase)) @@ -2746,12 +2740,12 @@ private static IEnumerable GetRegistrySubKeyNames(RegistryKey baseKey, s if (String.Equals(subKey, @"Software\Microsoft\.NETCompactFramework\v2.0.3600\PocketPC\AssemblyFoldersEx", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Microsoft\.NETCompactFramework\v2.0.3600\PocketPC\AssemblyFoldersEx\AFETestDeviceControl", StringComparison.OrdinalIgnoreCase)) { - return new string[] { }; + return Array.Empty(); } if (String.Equals(subKey, @"Software\Microsoft\Microsoft SDKs\Windows", StringComparison.OrdinalIgnoreCase)) @@ -3029,7 +3023,7 @@ protected static bool Execute(ResolveAssemblyReference t, bool buildConsistencyC ); // A few checks. These should always be true or it may be a perf issue for project load. - ITaskItem[] loadModeResolvedFiles = new TaskItem[0]; + ITaskItem[] loadModeResolvedFiles = Array.Empty(); if (t.ResolvedFiles != null) { loadModeResolvedFiles = (ITaskItem[])t.ResolvedFiles.Clone(); diff --git a/src/Tasks.UnitTests/CombinePath_Tests.cs b/src/Tasks.UnitTests/CombinePath_Tests.cs index d77840df2a5..def89f55a3a 100644 --- a/src/Tasks.UnitTests/CombinePath_Tests.cs +++ b/src/Tasks.UnitTests/CombinePath_Tests.cs @@ -175,7 +175,7 @@ public void NoPaths() t.BuildEngine = new MockEngine(); t.BasePath = @"c:\abc\def"; - t.Paths = new ITaskItem[0]; + t.Paths = System.Array.Empty(); Assert.True(t.Execute()); // "success" ObjectModelHelpers.AssertItemsMatch(@" diff --git a/src/Tasks.UnitTests/Exec_Tests.cs b/src/Tasks.UnitTests/Exec_Tests.cs index 511eb67ef68..54b3cc595e9 100644 --- a/src/Tasks.UnitTests/Exec_Tests.cs +++ b/src/Tasks.UnitTests/Exec_Tests.cs @@ -525,7 +525,7 @@ public void ExecTaskDisablesAutoRun(string environmentVariableName, string envir MethodInfo generateCommandLineCommandsMethod = execType.GetMethod("GenerateCommandLineCommands", BindingFlags.Instance | BindingFlags.NonPublic); - string commandLine = generateCommandLineCommandsMethod.Invoke(exec, new object[0]) as string; + string commandLine = generateCommandLineCommandsMethod.Invoke(exec, Array.Empty()) as string; if (autoRunShouldBeDisabled) { diff --git a/src/Tasks.UnitTests/FindAppConfigFile_Tests.cs b/src/Tasks.UnitTests/FindAppConfigFile_Tests.cs index 7ce5eb1a738..5da0446aff0 100644 --- a/src/Tasks.UnitTests/FindAppConfigFile_Tests.cs +++ b/src/Tasks.UnitTests/FindAppConfigFile_Tests.cs @@ -19,7 +19,7 @@ public void FoundInFirstInProjectDirectory() FindAppConfigFile f = new FindAppConfigFile(); f.BuildEngine = new MockEngine(); f.PrimaryList = new ITaskItem[] { new TaskItem("app.config"), new TaskItem("xxx") }; - f.SecondaryList = new ITaskItem[] { }; + f.SecondaryList = System.Array.Empty(); f.TargetPath = "targetpath"; Assert.True(f.Execute()); Assert.Equal("app.config", f.AppConfigFile.ItemSpec); @@ -88,7 +88,7 @@ public void ReturnsLastOne() ITaskItem item2 = new TaskItem("app.config"); item2.SetMetadata("id", "2"); f.PrimaryList = new ITaskItem[] { item1, item2 }; - f.SecondaryList = new ITaskItem[] { }; + f.SecondaryList = System.Array.Empty(); f.TargetPath = "targetpath"; Assert.True(f.Execute()); Assert.Equal("app.config", f.AppConfigFile.ItemSpec); diff --git a/src/Tasks.UnitTests/FindInList_Tests.cs b/src/Tasks.UnitTests/FindInList_Tests.cs index 159e041f870..a1f0d76bf11 100644 --- a/src/Tasks.UnitTests/FindInList_Tests.cs +++ b/src/Tasks.UnitTests/FindInList_Tests.cs @@ -92,7 +92,7 @@ public void ReturnsLastOneEmptyList() f.BuildEngine = new MockEngine(); f.ItemSpecToFind = "a.cs"; f.FindLastMatch = true; - f.List = new ITaskItem[] { }; + f.List = Array.Empty(); Assert.True(f.Execute()); Assert.Null(f.ItemFound); } diff --git a/src/Tasks.UnitTests/GenerateBindingRedirects_Tests.cs b/src/Tasks.UnitTests/GenerateBindingRedirects_Tests.cs index 84d23365a29..1b7826288e8 100644 --- a/src/Tasks.UnitTests/GenerateBindingRedirects_Tests.cs +++ b/src/Tasks.UnitTests/GenerateBindingRedirects_Tests.cs @@ -312,7 +312,7 @@ private BindingRedirectsExecutionResult GenerateBindingRedirects(string appConfi GenerateBindingRedirects bindingRedirects = new GenerateBindingRedirects { BuildEngine = engine, - SuggestedRedirects = suggestedRedirects ?? new ITaskItem[] { }, + SuggestedRedirects = suggestedRedirects ?? System.Array.Empty(), AppConfigFile = new TaskItem(appConfigFile), OutputAppConfigFile = new TaskItem(outputAppConfig) }; diff --git a/src/Tasks.UnitTests/Hash_Tests.cs b/src/Tasks.UnitTests/Hash_Tests.cs index 95b826ad3ce..d3e831abfe0 100644 --- a/src/Tasks.UnitTests/Hash_Tests.cs +++ b/src/Tasks.UnitTests/Hash_Tests.cs @@ -41,7 +41,7 @@ public void HashTaskEmptyInputTest() var nullItemsHash = ExecuteHashTask(null); Assert.Null(nullItemsHash); - var zeroLengthItemsHash = ExecuteHashTask(new ITaskItem[0]); + var zeroLengthItemsHash = ExecuteHashTask(System.Array.Empty()); Assert.Null(zeroLengthItemsHash); } diff --git a/src/Tasks.UnitTests/ResolveSDKReference_Tests.cs b/src/Tasks.UnitTests/ResolveSDKReference_Tests.cs index 2a0468f4a45..c9dcf784494 100644 --- a/src/Tasks.UnitTests/ResolveSDKReference_Tests.cs +++ b/src/Tasks.UnitTests/ResolveSDKReference_Tests.cs @@ -1199,7 +1199,7 @@ public void DuplicateSDKReferences() ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); ITaskItem item2 = new TaskItem("GoodTestSDK, Version=2.0"); t.SDKReferences = new ITaskItem[] { item, item2 }; - t.References = new TaskItem[0]; + t.References = Array.Empty(); ITaskItem installedSDK = new TaskItem(_sdkPath); installedSDK.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); t.InstalledSDKs = new ITaskItem[] { installedSDK }; @@ -1307,7 +1307,7 @@ public void InstalledSDKEmpty() ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); t.SDKReferences = new ITaskItem[] { item }; t.References = null; - t.InstalledSDKs = new ITaskItem[0]; + t.InstalledSDKs = Array.Empty(); t.BuildEngine = engine; bool succeeded = t.Execute(); @@ -1330,7 +1330,7 @@ public void MixOfInstalledSDKItemsGoodDuplicateAndBad() ResolveSDKReference t = new ResolveSDKReference(); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); t.SDKReferences = new ITaskItem[] { item }; - t.References = new TaskItem[0]; + t.References = Array.Empty(); ITaskItem installedSDK1 = new TaskItem(_sdkPath); installedSDK1.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); @@ -1473,7 +1473,7 @@ public void EmptySDKReferencesList() ResolveSDKReference t = new ResolveSDKReference(); ITaskItem item = new TaskItem("GoodTestSDK, Version=2.0"); - t.SDKReferences = new ITaskItem[0]; + t.SDKReferences = Array.Empty(); ITaskItem installedSDK = new TaskItem(_sdkPath); installedSDK.SetMetadata("SDKName", "GoodTestSDK, Version=2.0"); t.InstalledSDKs = new ITaskItem[] { installedSDK }; diff --git a/src/Tasks.UnitTests/SGen_Tests.cs b/src/Tasks.UnitTests/SGen_Tests.cs index 980b3ba9c87..22c5a5ea821 100644 --- a/src/Tasks.UnitTests/SGen_Tests.cs +++ b/src/Tasks.UnitTests/SGen_Tests.cs @@ -252,7 +252,7 @@ public void TestEmptyReferences() sgen.ShouldGenerateSerializer = true; sgen.UseProxyTypes = false; sgen.UseKeep = false; - sgen.References = new string[]{ }; + sgen.References = Array.Empty(); string commandLine = sgen.CommandLine(); diff --git a/src/Tasks.UnitTests/WriteCodeFragment_Tests.cs b/src/Tasks.UnitTests/WriteCodeFragment_Tests.cs index cd63fcd1a29..f72e0a75319 100644 --- a/src/Tasks.UnitTests/WriteCodeFragment_Tests.cs +++ b/src/Tasks.UnitTests/WriteCodeFragment_Tests.cs @@ -137,7 +137,7 @@ public void NoAttributesShouldEmitNoFile() MockEngine engine = new MockEngine(true); task.BuildEngine = engine; task.Language = "c#"; - task.AssemblyAttributes = new TaskItem[] { }; // MSBuild sets an empty array + task.AssemblyAttributes = Array.Empty(); // MSBuild sets an empty array task.OutputFile = new TaskItem(file); bool result = task.Execute(); diff --git a/src/Tasks.UnitTests/XamlTestHelpers.cs b/src/Tasks.UnitTests/XamlTestHelpers.cs index 052fe764616..c5174dd8d6d 100644 --- a/src/Tasks.UnitTests/XamlTestHelpers.cs +++ b/src/Tasks.UnitTests/XamlTestHelpers.cs @@ -232,7 +232,7 @@ public static string GenerateCommandLine(object task) try { return (string)task.GetType().InvokeMember("GetCommandLine_ForUnitTestsOnly", BindingFlags.Public | BindingFlags.NonPublic | - BindingFlags.Instance | BindingFlags.InvokeMethod, null, task, new object[] { }); + BindingFlags.Instance | BindingFlags.InvokeMethod, null, task, Array.Empty()); } catch (TargetInvocationException e) { diff --git a/src/Tasks.UnitTests/XslTransformation_Tests.cs b/src/Tasks.UnitTests/XslTransformation_Tests.cs index 7f24c797792..59223662e76 100644 --- a/src/Tasks.UnitTests/XslTransformation_Tests.cs +++ b/src/Tasks.UnitTests/XslTransformation_Tests.cs @@ -1143,7 +1143,7 @@ private void Compile(string inputFile, string outputFile) // Add custom attribute to assembly marking it as security transparent so that Assert will not be allowed // and link demands will be converted to full demands. - asmBldr.SetCustomAttribute(new CustomAttributeBuilder(typeof(System.Security.SecurityTransparentAttribute).GetConstructor(Type.EmptyTypes), new object[] { })); + asmBldr.SetCustomAttribute(new CustomAttributeBuilder(typeof(System.Security.SecurityTransparentAttribute).GetConstructor(Type.EmptyTypes), Array.Empty())); // Mark the assembly with GeneratedCodeAttribute to improve profiling experience asmBldr.SetCustomAttribute(new CustomAttributeBuilder(typeof(GeneratedCodeAttribute).GetConstructor(new Type[] { typeof(string), typeof(string) }), new object[] { "XsltCompiler", "2.0.0.0" })); diff --git a/src/Tasks/GetCompatiblePlatform.cs b/src/Tasks/GetCompatiblePlatform.cs index 5f2ccedeb5f..f2b823767fd 100644 --- a/src/Tasks/GetCompatiblePlatform.cs +++ b/src/Tasks/GetCompatiblePlatform.cs @@ -44,7 +44,7 @@ public class GetCompatiblePlatform : TaskExtension public GetCompatiblePlatform() { - AnnotatedProjects = new ITaskItem[0]; + AnnotatedProjects = Array.Empty(); CurrentProjectPlatform = string.Empty; PlatformLookupTable = string.Empty; } diff --git a/src/Utilities.UnitTests/MuxLogger_Tests.cs b/src/Utilities.UnitTests/MuxLogger_Tests.cs index 7e9f26fc2a4..fac643fade0 100644 --- a/src/Utilities.UnitTests/MuxLogger_Tests.cs +++ b/src/Utilities.UnitTests/MuxLogger_Tests.cs @@ -56,7 +56,7 @@ public void SimpleBuildWithNoLoggers() MuxLogger muxLogger = new MuxLogger(); BuildParameters parameters = new BuildParameters(ProjectCollection.GlobalProjectCollection); parameters.Loggers = new ILogger[] { muxLogger }; - buildManager.Build(parameters, new BuildRequestData(project, new string[0], null)); + buildManager.Build(parameters, new BuildRequestData(project, Array.Empty(), null)); } /// @@ -96,7 +96,7 @@ public void BuildWithMuxLoggerEquivalentToNormalLogger() ProjectInstance project = (new Project(XmlReader.Create(new StringReader(projectBody)), null, ObjectModelHelpers.MSBuildDefaultToolsVersion, projectCollection)).CreateProjectInstance(); BuildParameters parameters = new BuildParameters(projectCollection); parameters.Loggers = new ILogger[] { mockLogger2 }; - buildManager.Build(parameters, new BuildRequestData(project, new string[0], null)); + buildManager.Build(parameters, new BuildRequestData(project, Array.Empty(), null)); // Build with the mux logger MuxLogger muxLogger = new MuxLogger(); @@ -111,7 +111,7 @@ public void BuildWithMuxLoggerEquivalentToNormalLogger() try { - BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, new string[0], null)); + BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, Array.Empty(), null)); muxLogger.RegisterLogger(submission.SubmissionId, mockLogger); submission.Execute(); } @@ -151,7 +151,7 @@ public void OneSubmissionOneLogger() try { - BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, new string[0], null)); + BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, Array.Empty(), null)); muxLogger.RegisterLogger(submission.SubmissionId, mockLogger); submission.Execute(); @@ -204,11 +204,11 @@ public void TwoSubmissionsWithSeparateLoggers() try { - BuildSubmission submission1 = buildManager.PendBuildRequest(new BuildRequestData(project1, new string[0], null)); + BuildSubmission submission1 = buildManager.PendBuildRequest(new BuildRequestData(project1, Array.Empty(), null)); muxLogger.RegisterLogger(submission1.SubmissionId, mockLogger1); submission1.Execute(); - BuildSubmission submission2 = buildManager.PendBuildRequest(new BuildRequestData(project2, new string[0], null)); + BuildSubmission submission2 = buildManager.PendBuildRequest(new BuildRequestData(project2, Array.Empty(), null)); muxLogger.RegisterLogger(submission2.SubmissionId, mockLogger2); submission2.Execute(); } @@ -257,7 +257,7 @@ public void OneSubmissionTwoLoggers() buildManager.BeginBuild(parameters); try { - BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, new string[0], null)); + BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, Array.Empty(), null)); muxLogger.RegisterLogger(submission.SubmissionId, mockLogger1); muxLogger.RegisterLogger(submission.SubmissionId, mockLogger2); @@ -308,7 +308,7 @@ public void RegisteringLoggerDuringBuildThrowsException() { try { - BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, new string[0], null)); + BuildSubmission submission = buildManager.PendBuildRequest(new BuildRequestData(project, Array.Empty(), null)); submission.ExecuteAsync(null, null); projectStartedEvent.WaitOne(); diff --git a/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs b/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs index 845959692ef..f7df24b620a 100644 --- a/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs +++ b/src/Utilities.UnitTests/ToolLocationHelper_Tests.cs @@ -2821,7 +2821,7 @@ private static string[] GetDirectories(string path, string pattern) { return new[] { @"{runtime-base}\v1.2.30617", @"{runtime-base}\v1.2.x86dbg", @"{runtime-base}\v1.2.x86fre" }; } - return new string[0]; + return Array.Empty(); } /// @@ -4086,7 +4086,7 @@ public void GetPlatformsForSDKNullSDKVersion() [Fact] public void GetPlatformsForSDKWithNoInstalledTargetPlatforms() { - ToolLocationHelper.GetPlatformsForSDK("AnySDK", new Version("1.0"), new string[0], "").Any().ShouldBeFalse(); + ToolLocationHelper.GetPlatformsForSDK("AnySDK", new Version("1.0"), Array.Empty(), "").Any().ShouldBeFalse(); } /// @@ -4755,7 +4755,7 @@ private static IEnumerable GetRegistrySubKeyNames(RegistryKey baseKey, s } } - return new string[] { }; + return Array.Empty(); } /// diff --git a/src/Utilities.UnitTests/TrackedDependencies/TrackedDependenciesTests.cs b/src/Utilities.UnitTests/TrackedDependencies/TrackedDependenciesTests.cs index 4f09f9bbc15..a7033377e98 100644 --- a/src/Utilities.UnitTests/TrackedDependencies/TrackedDependenciesTests.cs +++ b/src/Utilities.UnitTests/TrackedDependencies/TrackedDependenciesTests.cs @@ -167,7 +167,7 @@ public void FormatNormalizedRootingMarkerTests() new ITaskItem[] {new TaskItem("Debug\\link.4567.write.1.tlog\\")}, Path.Combine(Directory.GetCurrentDirectory(), "Debug\\link.4567.write.1.tlog\\").ToUpperInvariant() }, - {new ITaskItem[0] { }, ""}, + {Array.Empty(), ""}, { new ITaskItem[3] {