Skip to content

Enable container tests #48887

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 14 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion build/RunTestsOnHelix.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ set NUGET_EXPERIMENTAL_MAX_NETWORK_TRY_COUNT=6
set NUGET_EXPERIMENTAL_NETWORK_RETRY_DELAY_MILLISECONDS=1000

set MicrosoftNETBuildExtensionsTargets=%HELIX_CORRELATION_PAYLOAD%\ex\msbuildExtensions\Microsoft\Microsoft.NET.Build.Extensions\Microsoft.NET.Build.Extensions.targets
set DOTNET_ROOT=%HELIX_CORRELATION_PAYLOAD%\d
set DOTNET_ROOT=%TestExecutionDirectory%\dotnet
mkdir %DOTNET_ROOT%
xcopy /E /I /Y "%HELIX_CORRELATION_PAYLOAD%\d\*" "%DOTNET_ROOT%\"
set PATH=%DOTNET_ROOT%;%PATH%
set DOTNET_MULTILEVEL_LOOKUP=0
set TestFullMSBuild=%1
Expand Down
4 changes: 3 additions & 1 deletion build/RunTestsOnHelix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ export NUGET_EXPERIMENTAL_MAX_NETWORK_TRY_COUNT=6
export NUGET_EXPERIMENTAL_NETWORK_RETRY_DELAY_MILLISECONDS=1000

export MicrosoftNETBuildExtensionsTargets=$HELIX_CORRELATION_PAYLOAD/ex/msbuildExtensions/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets
export DOTNET_ROOT=$HELIX_CORRELATION_PAYLOAD/d
export DOTNET_ROOT=$TestExecutionDirectory/dotnet
mkdir -p $DOTNET_ROOT
cp -a $HELIX_CORRELATION_PAYLOAD/d/* $DOTNET_ROOT/
export PATH=$DOTNET_ROOT:$PATH

export TestExecutionDirectory=$(realpath "$(mktemp -d "${TMPDIR:-/tmp}"/dotnetSdkTests.XXXXXXXX)")
Expand Down
4 changes: 1 addition & 3 deletions eng/pipelines/templates/jobs/sdk-job-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,7 @@ parameters:
container: ubuntu2204DebPkg
helixTargetContainer: $(helixTargetContainerPrefix)ubuntu-22.04-helix-amd64
osProperties: $(linuxOsPortableProperties)
# Skipping all container-based testing for now.
# See: https://github.com/dotnet/sdk/issues/40935
runTests: false
runTests: true
- categoryName: ContainerBased
container: fedora39
# No fedora Helix container is available, so use the ubuntu one instead.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.DotNet.Cli.Workload.Restore.Tests;
Expand All @@ -23,7 +23,7 @@ public void ProjectsThatDoNotSupportWorkloadsAreNotInspected()

new DotnetWorkloadCommand(Log, "restore")
.WithWorkingDirectory(projectPath)
.Execute()
.Execute("--verbosity", "diag")
.Should()
// if we did try to restore the dcproj in this TestAsset we would fail, so passing means we didn't!
.Pass();
Expand All @@ -39,10 +39,10 @@ public void ProjectsThatDoNotSupportWorkloadsAndAreTransitivelyReferencedDoNotBr
.Path;

new DotnetWorkloadCommand(Log, "restore")
.WithWorkingDirectory(projectPath)
.Execute()
.Should()
// if we did try to restore the esproj in this TestAsset we would fail, so passing means we didn't!
.Pass();
.WithWorkingDirectory(projectPath)
.Execute("--verbosity", "diag")
.Should()
// if we did try to restore the esproj in this TestAsset we would fail, so passing means we didn't!
.Pass();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ public void GivenWorkloadUpdateAcrossFeatureBandsItUpdatesPacks(bool userLocal)
};
Directory.CreateDirectory(Path.GetDirectoryName(installStatePath));
File.WriteAllText(installStatePath, oldInstallState.ToString());
new WorkloadConfigCommand(Parser.Instance.Parse(["dotnet", "workload", "config", "--update-mode", "manifests"])).Execute().Should().Be(0);
new WorkloadConfigCommand(Parser.Instance.Parse(["dotnet", "workload", "config", "--update-mode", "manifests"]), workloadResolverFactory: workloadResolverFactory).Execute().Should().Be(0);
updateCommand.Execute();
var newInstallState = InstallStateContents.FromPath(installStatePath);
newInstallState.Manifests.Should().BeNull();
Expand All @@ -280,7 +280,7 @@ public void GivenWorkloadUpdateAcrossFeatureBandsItUpdatesPacks(bool userLocal)
public void GivenWorkloadUpdateItUpdatesOutOfDatePacks()
{
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
(_, var command, var installer, _, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");
(_, var command, var installer, _, _, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");

command.Execute();

Expand Down Expand Up @@ -405,7 +405,7 @@ public void GivenWorkloadUpdateItFindsGreatestWorkloadSetWithSpecifiedComponents
public void GivenWorkloadUpdateItRollsBackOnFailedUpdate()
{
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android"), new WorkloadId("xamarin-android-build") };
(_, var command, var installer, var workloadResolver, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, failingPack: "Xamarin.Android.Framework", installedFeatureBand: "6.0.100");
(_, var command, var installer, var workloadResolver, _, _, _) = GetTestInstallers(_parseResult, installedWorkloads: mockWorkloadIds, failingPack: "Xamarin.Android.Framework", installedFeatureBand: "6.0.100");


var exceptionThrown = Assert.Throws<GracefulException>(() => command.Execute());
Expand All @@ -425,7 +425,7 @@ public void GivenWorkloadUpdateItCanDownloadToOfflineCache()
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
var cachePath = Path.Combine(_testAssetsManager.CreateTestDirectory(identifier: "cachePath").Path, "mockCachePath");
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--download-to-cache", cachePath });
(_, var command, _, _, var manifestUpdater, var packageDownloader) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");
(_, var command, _, _, var manifestUpdater, var packageDownloader, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");

command.Execute();

Expand All @@ -446,7 +446,7 @@ public void GivenWorkloadUpdateItCanInstallFromOfflineCache()
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
var cachePath = "mockCachePath";
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--from-cache", cachePath });
(_, var command, var installer, _, _, var nugetDownloader) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");
(_, var command, var installer, _, _, var nugetDownloader, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, installedFeatureBand: "6.0.100");

command.Execute();

Expand All @@ -462,7 +462,7 @@ public void GivenWorkloadUpdateItPrintsDownloadUrls()
{
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--print-download-link-only" });
(_, var command, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");
(_, var command, _, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, installedFeatureBand: "6.0.100");

command.Execute();

Expand All @@ -476,7 +476,7 @@ public void GivenWorkloadUpdateItPrintsDownloadUrlsForNewFeatureBand()
{
var mockWorkloadIds = new WorkloadId[] { new WorkloadId("xamarin-android") };
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--print-download-link-only", "--sdk-version", "7.0.100" });
(_, var command, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, sdkVersion: "6.0.400");
(_, var command, _, _, _, _, _) = GetTestInstallers(parseResult, installedWorkloads: mockWorkloadIds, includeInstalledPacks: true, sdkVersion: "6.0.400");

command.Execute();

Expand Down Expand Up @@ -504,7 +504,7 @@ public void GivenWorkloadUpdateWithSdkVersionItErrors()
public void GivenOnlyUpdateAdManifestItSucceeds()
{
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--advertising-manifests-only" });
(_, var command, _, _, var manifestUpdater, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");
(_, var command, _, _, var manifestUpdater, _, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");

command.Execute();
manifestUpdater.UpdateAdvertisingManifestsCallCount.Should().Be(1);
Expand All @@ -514,7 +514,7 @@ public void GivenOnlyUpdateAdManifestItSucceeds()
public void GivenPrintRollbackDefinitionItIncludesAllInstalledManifests()
{
var parseResult = Parser.Instance.Parse(new string[] { "dotnet", "workload", "update", "--print-rollback" });
(_, var updateCommand, _, _, _, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");
(_, var updateCommand, _, _, _, _, _) = GetTestInstallers(parseResult, installedFeatureBand: "6.0.100");


updateCommand.Execute();
Expand All @@ -539,10 +539,10 @@ public void ApplyRollbackAcrossFeatureBand(string existingSdkFeatureBand, string
{
new(new ManifestVersionUpdate(new ManifestId("mock-manifest"), new ManifestVersion("2.0.0"), newSdkFeatureBand), null),
};
(var dotnetPath, var updateCommand, var packInstaller, _, _, _) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", identifier: existingSdkFeatureBand + newSdkFeatureBand, installedFeatureBand: existingSdkFeatureBand);
(var dotnetPath, var updateCommand, var packInstaller, _, _, _, var resolverFactory) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", identifier: existingSdkFeatureBand + newSdkFeatureBand, installedFeatureBand: existingSdkFeatureBand);

parseResult = Parser.Instance.Parse(["dotnet", "workload", "config", "--update-mode", "manifests"]);
WorkloadConfigCommand configCommand = new(parseResult);
WorkloadConfigCommand configCommand = new(parseResult, workloadResolverFactory: resolverFactory);
configCommand.Execute().Should().Be(0);
updateCommand.Execute()
.Should().Be(0);
Expand Down Expand Up @@ -571,7 +571,7 @@ public void ApplyRollbackWithMultipleManifestsAcrossFeatureBand()
new(new ManifestVersionUpdate(new ManifestId("mock-manifest-2"), new ManifestVersion("2.0.0"), "6.0.300"), null),
new(new ManifestVersionUpdate(new ManifestId("mock-manifest-3"), new ManifestVersion("2.0.0"), "6.0.100"), null),
};
(_, var updateCommand, var packInstaller, _, _, _) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", installedFeatureBand: "6.0.300");
(_, var updateCommand, var packInstaller, _, _, _, _) = GetTestInstallers(parseResult, manifestUpdates: manifestsToUpdate, sdkVersion: "6.0.300", installedFeatureBand: "6.0.300");

updateCommand.Execute()
.Should().Be(0);
Expand Down Expand Up @@ -614,7 +614,7 @@ public void GivenInvalidVersionInRollbackFileItErrors()
exception.InnerException.Message.Should().Contain(string.Format(CliCommandStrings.InvalidVersionForWorkload, "mock.workload", "6.0.0.15"));
}

internal (string, WorkloadUpdateCommand, MockPackWorkloadInstaller, IWorkloadResolver, MockWorkloadManifestUpdater, MockNuGetPackageDownloader) GetTestInstallers(
internal (string, WorkloadUpdateCommand, MockPackWorkloadInstaller, IWorkloadResolver, MockWorkloadManifestUpdater, MockNuGetPackageDownloader, IWorkloadResolverFactory) GetTestInstallers(
ParseResult parseResult,
[CallerMemberName] string testName = "",
string failingWorkload = null,
Expand Down Expand Up @@ -657,7 +657,7 @@ public void GivenInvalidVersionInRollbackFileItErrors()
nugetPackageDownloader: nugetDownloader,
workloadManifestUpdater: manifestUpdater);

return (dotnetRoot, installManager, installer, workloadResolver, manifestUpdater, nugetDownloader);
return (dotnetRoot, installManager, installer, workloadResolver, manifestUpdater, nugetDownloader, workloadResolverFactory);
}
}
}
Loading