Skip to content

Commit

Permalink
Remove test setup that's happening in the CI setup scripts
Browse files Browse the repository at this point in the history
The tests that need to set things up like this should just be ensuring
this state directly, since there's no guarantee that this would have
ran before many types of tests run.

Fixes #49486
  • Loading branch information
jasonmalinowski authored and JoeRobich committed Jan 21, 2025
1 parent 05e716a commit c5b1c4c
Show file tree
Hide file tree
Showing 12 changed files with 101 additions and 141 deletions.
9 changes: 0 additions & 9 deletions eng/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -710,14 +710,6 @@ function Setup-IntegrationTestRun() {
$env:ROSLYN_LSPEDITOR = "$lspEditor"
}

function Prepare-TempDir() {
Copy-Item (Join-Path $RepoRoot "src\Workspaces\MSBuildTest\Resources\global.json") $TempDir
Copy-Item (Join-Path $RepoRoot "src\Workspaces\MSBuildTest\Resources\Directory.Build.props") $TempDir
Copy-Item (Join-Path $RepoRoot "src\Workspaces\MSBuildTest\Resources\Directory.Build.targets") $TempDir
Copy-Item (Join-Path $RepoRoot "src\Workspaces\MSBuildTest\Resources\Directory.Build.rsp") $TempDir
Copy-Item (Join-Path $RepoRoot "src\Workspaces\MSBuildTest\Resources\NuGet.Config") $TempDir
}

function List-Processes() {
Write-Host "Listing running build processes..."
Get-Process -Name "msbuild" -ErrorAction SilentlyContinue | Out-Host
Expand Down Expand Up @@ -746,7 +738,6 @@ try {

if ($ci) {
List-Processes
Prepare-TempDir
EnablePreviewSdks
if ($testVsi) {
Setup-IntegrationTestRun
Expand Down
8 changes: 0 additions & 8 deletions src/Tools/PrepareTests/MinimizeUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,10 @@ internal static void Run(string sourceDirectory, string destinationDirectory, bo
var duplicateDirectory = Path.Combine(destinationDirectory, duplicateDirectoryName);
Directory.CreateDirectory(duplicateDirectory);

// https://github.com/dotnet/roslyn/issues/49486
// we should avoid copying the files under Resources.
Directory.CreateDirectory(Path.Combine(destinationDirectory, "src/Workspaces/MSBuildTest/Resources"));
var individualFiles = new[]
{
"global.json",
"NuGet.config",
"src/Workspaces/MSBuildTest/Resources/global.json",
"src/Workspaces/MSBuildTest/Resources/Directory.Build.props",
"src/Workspaces/MSBuildTest/Resources/Directory.Build.targets",
"src/Workspaces/MSBuildTest/Resources/Directory.Build.rsp",
"src/Workspaces/MSBuildTest/Resources/NuGet.Config",
};

foreach (var individualFile in individualFiles)
Expand Down
12 changes: 6 additions & 6 deletions src/Workspaces/MSBuild/Test/NetCoreTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -398,12 +398,12 @@ public async Task TestOpenSolution_NetCoreMultiTFMWithProjectReferenceToFSharp()
[Trait(Traits.Feature, Traits.Features.NetCore)]
public async Task TestOpenProject_ReferenceConfigurationSpecificMetadata()
{
var files = GetBaseFiles()
.WithFile(@"Solution.sln", Resources.SolutionFiles.Issue30174_Solution)
.WithFile(@"InspectedLibrary\InspectedLibrary.csproj", Resources.ProjectFiles.CSharp.Issue30174_InspectedLibrary)
.WithFile(@"InspectedLibrary\InspectedClass.cs", Resources.SourceFiles.CSharp.Issue30174_InspectedClass)
.WithFile(@"ReferencedLibrary\ReferencedLibrary.csproj", Resources.ProjectFiles.CSharp.Issue30174_ReferencedLibrary)
.WithFile(@"ReferencedLibrary\SomeMetadataAttribute.cs", Resources.SourceFiles.CSharp.Issue30174_SomeMetadataAttribute);
var files = new FileSet(
(@"Solution.sln", Resources.SolutionFiles.Issue30174_Solution),
(@"InspectedLibrary\InspectedLibrary.csproj", Resources.ProjectFiles.CSharp.Issue30174_InspectedLibrary),
(@"InspectedLibrary\InspectedClass.cs", Resources.SourceFiles.CSharp.Issue30174_InspectedClass),
(@"ReferencedLibrary\ReferencedLibrary.csproj", Resources.ProjectFiles.CSharp.Issue30174_ReferencedLibrary),
(@"ReferencedLibrary\SomeMetadataAttribute.cs", Resources.SourceFiles.CSharp.Issue30174_SomeMetadataAttribute));

CreateFiles(files);

Expand Down
74 changes: 74 additions & 0 deletions src/Workspaces/MSBuild/Test/ProjectGuardFiles.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System.IO;
using System.Threading;

namespace Microsoft.CodeAnalysis.UnitTests
{
internal static class ProjectGuardFiles
{
private static int _alreadyWritten = 0;

internal static void EnsureWrittenToTemp()
{
if (Interlocked.CompareExchange(ref _alreadyWritten, value: 1, comparand: 0) != 0)
return;

File.WriteAllText(Path.Combine(Path.GetTempPath(), "global.json"),
"""
{
"comment": "this file is empty to ensure we get the 'standard' behavior as if no global.json was specified in the first place"
}
""");

File.WriteAllText(Path.Combine(Path.GetTempPath(), "Directory.Build.props"),
"""
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
<Project>
<PropertyGroup>
<!-- Attempt to make our test more deterministic by disabling any overrides that could be
accidentally installed on the developers machine
-->
<ImportUserLocationsByWildcardBeforeMicrosoftCommonProps>false</ImportUserLocationsByWildcardBeforeMicrosoftCommonProps>
<ImportUserLocationsByWildcardAfterMicrosoftCommonProps>false</ImportUserLocationsByWildcardAfterMicrosoftCommonProps>
<ImportUserLocationsByWildcardBeforeMicrosoftCSharpTargets>false</ImportUserLocationsByWildcardBeforeMicrosoftCSharpTargets>
<ImportUserLocationsByWildcardAfterMicrosoftCSharpTargets>false</ImportUserLocationsByWildcardAfterMicrosoftCSharpTargets>
<ImportUserLocationsByWildcardBeforeMicrosoftNetFrameworkProps>false</ImportUserLocationsByWildcardBeforeMicrosoftNetFrameworkProps>
<ImportUserLocationsByWildcardAfterMicrosoftNetFrameworkProps>false</ImportUserLocationsByWildcardAfterMicrosoftNetFrameworkProps>
</PropertyGroup>
</Project>
""");

File.WriteAllText(Path.Combine(Path.GetTempPath(), "Directory.Build.rsp"),
"""
# This file intentionally left blank to avoid accidental import during testing
""");

File.WriteAllText(Path.Combine(Path.GetTempPath(), "Directory.Build.targets"),
"""
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE file in the project root for more information. -->
<Project>
<!-- Intentionally left blank. This file is used to prevent accidental import of
Directory.Build.props from our repo during testing -->
</Project>
""");

File.WriteAllText(Path.Combine(Path.GetTempPath(), "NuGet.Config"),
"""
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- Provide a default package restore source for test projects. -->
<packageRestore>
<add key="enabled" value="true" />
</packageRestore>
<packageSources>
<clear />
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
</packageSources>
</configuration>
""");
}
}
}
16 changes: 0 additions & 16 deletions src/Workspaces/MSBuild/Test/Resources/Directory.Build.props

This file was deleted.

1 change: 0 additions & 1 deletion src/Workspaces/MSBuild/Test/Resources/Directory.Build.rsp

This file was deleted.

5 changes: 0 additions & 5 deletions src/Workspaces/MSBuild/Test/Resources/Directory.Build.targets

This file was deleted.

11 changes: 0 additions & 11 deletions src/Workspaces/MSBuild/Test/Resources/NuGet.Config

This file was deleted.

3 changes: 0 additions & 3 deletions src/Workspaces/MSBuild/Test/Resources/global.json

This file was deleted.

3 changes: 0 additions & 3 deletions src/Workspaces/MSBuild/Test/TestFiles/Resources.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,7 @@ private static TResult GetOrLoadValue<TResult>(string name, Func<string, TResult
public static byte[] GetBytes(string name) => GetOrLoadValue(name, s_bytesLoader, ref s_bytesCache);
public static string GetText(string name) => GetOrLoadValue(name, s_textLoader, ref s_textCache);

public static string Directory_Build_props => GetText("Directory.Build.props");
public static string Directory_Build_targets => GetText("Directory.Build.targets");
public static byte[] Key_snk => GetBytes("key.snk");
public static string NuGet_Config => GetText("NuGet.Config");

public static class SolutionFilters
{
Expand Down
40 changes: 20 additions & 20 deletions src/Workspaces/MSBuild/Test/VisualStudioMSBuildWorkspaceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3141,26 +3141,26 @@ public async Task TestOpenProject_CommandLineArgsHaveNoErrors()
[WorkItem("https://github.com/dotnet/roslyn/issues/29122")]
public async Task TestOpenSolution_ProjectReferencesWithUnconventionalOutputPaths()
{
CreateFiles(GetBaseFiles()
.WithFile(@"TestVB2.sln", Resources.SolutionFiles.Issue29122_Solution)
.WithFile(@"Proj1\ClassLibrary1.vbproj", Resources.ProjectFiles.VisualBasic.Issue29122_ClassLibrary1)
.WithFile(@"Proj1\Class1.vb", Resources.SourceFiles.VisualBasic.VisualBasicClass)
.WithFile(@"Proj1\My Project\Application.Designer.vb", Resources.SourceFiles.VisualBasic.Application_Designer)
.WithFile(@"Proj1\My Project\Application.myapp", Resources.SourceFiles.VisualBasic.Application)
.WithFile(@"Proj1\My Project\AssemblyInfo.vb", Resources.SourceFiles.VisualBasic.AssemblyInfo)
.WithFile(@"Proj1\My Project\Resources.Designer.vb", Resources.SourceFiles.VisualBasic.Resources_Designer)
.WithFile(@"Proj1\My Project\Resources.resx", Resources.SourceFiles.VisualBasic.Resources)
.WithFile(@"Proj1\My Project\Settings.Designer.vb", Resources.SourceFiles.VisualBasic.Settings_Designer)
.WithFile(@"Proj1\My Project\Settings.settings", Resources.SourceFiles.VisualBasic.Settings)
.WithFile(@"Proj2\ClassLibrary2.vbproj", Resources.ProjectFiles.VisualBasic.Issue29122_ClassLibrary2)
.WithFile(@"Proj2\Class1.vb", Resources.SourceFiles.VisualBasic.VisualBasicClass)
.WithFile(@"Proj2\My Project\Application.Designer.vb", Resources.SourceFiles.VisualBasic.Application_Designer)
.WithFile(@"Proj2\My Project\Application.myapp", Resources.SourceFiles.VisualBasic.Application)
.WithFile(@"Proj2\My Project\AssemblyInfo.vb", Resources.SourceFiles.VisualBasic.AssemblyInfo)
.WithFile(@"Proj2\My Project\Resources.Designer.vb", Resources.SourceFiles.VisualBasic.Resources_Designer)
.WithFile(@"Proj2\My Project\Resources.resx", Resources.SourceFiles.VisualBasic.Resources)
.WithFile(@"Proj2\My Project\Settings.Designer.vb", Resources.SourceFiles.VisualBasic.Settings_Designer)
.WithFile(@"Proj2\My Project\Settings.settings", Resources.SourceFiles.VisualBasic.Settings));
CreateFiles(new FileSet(
(@"TestVB2.sln", Resources.SolutionFiles.Issue29122_Solution),
(@"Proj1\ClassLibrary1.vbproj", Resources.ProjectFiles.VisualBasic.Issue29122_ClassLibrary1),
(@"Proj1\Class1.vb", Resources.SourceFiles.VisualBasic.VisualBasicClass),
(@"Proj1\My Project\Application.Designer.vb", Resources.SourceFiles.VisualBasic.Application_Designer),
(@"Proj1\My Project\Application.myapp", Resources.SourceFiles.VisualBasic.Application),
(@"Proj1\My Project\AssemblyInfo.vb", Resources.SourceFiles.VisualBasic.AssemblyInfo),
(@"Proj1\My Project\Resources.Designer.vb", Resources.SourceFiles.VisualBasic.Resources_Designer),
(@"Proj1\My Project\Resources.resx", Resources.SourceFiles.VisualBasic.Resources),
(@"Proj1\My Project\Settings.Designer.vb", Resources.SourceFiles.VisualBasic.Settings_Designer),
(@"Proj1\My Project\Settings.settings", Resources.SourceFiles.VisualBasic.Settings),
(@"Proj2\ClassLibrary2.vbproj", Resources.ProjectFiles.VisualBasic.Issue29122_ClassLibrary2),
(@"Proj2\Class1.vb", Resources.SourceFiles.VisualBasic.VisualBasicClass),
(@"Proj2\My Project\Application.Designer.vb", Resources.SourceFiles.VisualBasic.Application_Designer),
(@"Proj2\My Project\Application.myapp", Resources.SourceFiles.VisualBasic.Application),
(@"Proj2\My Project\AssemblyInfo.vb", Resources.SourceFiles.VisualBasic.AssemblyInfo),
(@"Proj2\My Project\Resources.Designer.vb", Resources.SourceFiles.VisualBasic.Resources_Designer),
(@"Proj2\My Project\Resources.resx", Resources.SourceFiles.VisualBasic.Resources),
(@"Proj2\My Project\Settings.Designer.vb", Resources.SourceFiles.VisualBasic.Settings_Designer),
(@"Proj2\My Project\Settings.settings", Resources.SourceFiles.VisualBasic.Settings)));

var solutionFilePath = GetSolutionFileName(@"TestVB2.sln");

Expand Down
Loading

0 comments on commit c5b1c4c

Please sign in to comment.