diff --git a/.azure/pipelines/helix-test.yml b/.azure/pipelines/helix-test.yml
new file mode 100644
index 000000000000..2bd5284917f8
--- /dev/null
+++ b/.azure/pipelines/helix-test.yml
@@ -0,0 +1,28 @@
+# Don't run CI for this config yet. We're not ready to move official builds on to Azure Pipelines
+trigger: none
+
+# Run PR validation on all branches
+pr:
+ branches:
+ include:
+ - '*'
+
+jobs:
+- job: Helix
+ timeoutInMinutes: 240
+ pool:
+ name: Hosted VS2017
+ vmImage: vs2017-win2016
+ steps:
+ - checkout: self
+ clean: true
+ - script: .\build.cmd -all -ci /t:Helix /p:IsHelixJob=true /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\SendToHelix.binlog
+ displayName: Run build.cmd helix target
+ - task: PublishBuildArtifacts@1
+ displayName: Publish Logs to VSTS
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log'
+ PublishLocation: Container
+ ArtifactName: $(Agent.Os)_$(Agent.JobName)
+ continueOnError: true
+ condition: always()
diff --git a/Directory.Build.props b/Directory.Build.props
index 406abcec72bb..54df78b6795c 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,4 +1,4 @@
-
+
diff --git a/Directory.Build.targets b/Directory.Build.targets
index 1654fd256f7f..8cf7d9e01fbc 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -60,6 +60,8 @@
false
$(MicrosoftNETCoreAppPackageVersion)
+
+ true
@@ -68,4 +70,96 @@
+
+
+
+
+
+
+
+
+
+ <_TargetFrameworks Remove="@(_TargetFrameworks)" />
+ <_TargetFrameworks Include="$(TargetFrameworks);$(TargetFramework)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TargetFrameworks Remove="@(_TargetFrameworks)" />
+ <_TargetFrameworks Include="$(TargetFrameworks);$(TargetFramework)" />
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetDirectoryName($(XunitConsole472Path)))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CopyItems Include="$(MSBuildThisFileDirectory)test\vstest\runtests.cmd" />
+
+
+
+
+ <_CopyItems Include="$(MSBuildThisFileDirectory)test\xunit\runtests.cmd" />
+
+
+
+
+ <_CopyItems Include="$(MSBuildThisFileDirectory)test\vstest\runtests.sh" />
+
+
+
+
+
+
+ $(TargetFileName)
+ $(MSBuildProjectName)-$(TargetFramework)
+ runtests.cmd $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppPackageVersion)
+ ./runtests.sh $(TargetFileName) $(NETCoreSdkVersion) $(MicrosoftNETCoreAppPackageVersion)
+ 00:30:00
+
+
+
diff --git a/NuGet.config b/NuGet.config
index cec9479a72bf..1b75d58a6a0e 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -7,6 +7,7 @@
The only allowed feed here is myget.org/aspnet-tools which is required to work around
https://github.com/Microsoft/msbuild/issues/2914
-->
+
diff --git a/build/repo.targets b/build/repo.targets
index b076164fc812..846202e99d18 100644
--- a/build/repo.targets
+++ b/build/repo.targets
@@ -111,4 +111,30 @@
Properties="$(BuildProperties);__DummyTarget=GenerateBuildAssetManifest" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @(HelixTestProject)
+
+
+
diff --git a/eng/targets/CSharp.Common.targets b/eng/targets/CSharp.Common.targets
index 8df4213c6295..4ed1d933eb10 100644
--- a/eng/targets/CSharp.Common.targets
+++ b/eng/targets/CSharp.Common.targets
@@ -5,7 +5,7 @@
net$(TargetFrameworkVersion.Substring(1).Replace('.',''))
.NETFramework
-
+
diff --git a/src/Azure/AzureAD/test/FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj b/src/Azure/AzureAD/test/FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj
index ed2253ef1786..a5ad6b4adea7 100644
--- a/src/Azure/AzureAD/test/FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj
+++ b/src/Azure/AzureAD/test/FunctionalTests/Microsoft.AspNetCore.Authentication.AzureAD.FunctionalTests.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+
+ false
diff --git a/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj b/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj
index 37a3d5ebb75f..23ffdf166d77 100644
--- a/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj
+++ b/src/Components/Blazor/Build/test/Microsoft.AspNetCore.Blazor.Build.Tests.csproj
@@ -30,6 +30,7 @@
+
diff --git a/src/Components/Blazor/Build/test/RuntimeDependenciesResolverTest.cs b/src/Components/Blazor/Build/test/RuntimeDependenciesResolverTest.cs
index 4e880ee59fab..c7435cacdf66 100644
--- a/src/Components/Blazor/Build/test/RuntimeDependenciesResolverTest.cs
+++ b/src/Components/Blazor/Build/test/RuntimeDependenciesResolverTest.cs
@@ -5,6 +5,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
using Xunit.Abstractions;
@@ -19,7 +20,8 @@ public RuntimeDependenciesResolverTest(ITestOutputHelper output)
_output = output;
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6549
public void FindsReferenceAssemblyGraph_ForStandaloneApp()
{
// Arrange
diff --git a/src/Components/Server/test/Microsoft.AspNetCore.Components.Server.Tests.csproj b/src/Components/Server/test/Microsoft.AspNetCore.Components.Server.Tests.csproj
index a4ea166fa2e8..e551455138a4 100644
--- a/src/Components/Server/test/Microsoft.AspNetCore.Components.Server.Tests.csproj
+++ b/src/Components/Server/test/Microsoft.AspNetCore.Components.Server.Tests.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+
+ false
diff --git a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
index da9688a6fbf0..5a886ef6359a 100644
--- a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
+++ b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
@@ -10,6 +10,8 @@
Temporarily disabled until this runs on macOS
-->
true
+
+ false
diff --git a/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs b/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs
index a66ebec2e811..7bc096645e7a 100644
--- a/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs
+++ b/src/DataProtection/Extensions/test/DataProtectionProviderTests.cs
@@ -113,8 +113,9 @@ public void System_UsesProvidedDirectory_WithConfigurationCallback()
});
}
- [ConditionalFact]
+ [ConditionalFact]
[X509StoreIsAvailable(StoreName.My, StoreLocation.CurrentUser)]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
public void System_UsesProvidedDirectoryAndCertificate()
{
var filePath = Path.Combine(GetTestFilesPath(), "TestCert.pfx");
@@ -164,6 +165,7 @@ public void System_UsesProvidedDirectoryAndCertificate()
[ConditionalFact]
[X509StoreIsAvailable(StoreName.My, StoreLocation.CurrentUser)]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
public void System_UsesProvidedCertificateNotFromStore()
{
using (var store = new X509Store(StoreName.My, StoreLocation.CurrentUser))
diff --git a/src/DataProtection/Extensions/test/Microsoft.AspNetCore.DataProtection.Extensions.Tests.csproj b/src/DataProtection/Extensions/test/Microsoft.AspNetCore.DataProtection.Extensions.Tests.csproj
index 1df9abdd1758..809684fa4003 100644
--- a/src/DataProtection/Extensions/test/Microsoft.AspNetCore.DataProtection.Extensions.Tests.csproj
+++ b/src/DataProtection/Extensions/test/Microsoft.AspNetCore.DataProtection.Extensions.Tests.csproj
@@ -7,6 +7,7 @@
+
diff --git a/src/DefaultBuilder/test/Microsoft.AspNetCore.FunctionalTests/Microsoft.AspNetCore.FunctionalTests.csproj b/src/DefaultBuilder/test/Microsoft.AspNetCore.FunctionalTests/Microsoft.AspNetCore.FunctionalTests.csproj
index 469f493fcc7a..bc1d97c7ccf8 100644
--- a/src/DefaultBuilder/test/Microsoft.AspNetCore.FunctionalTests/Microsoft.AspNetCore.FunctionalTests.csproj
+++ b/src/DefaultBuilder/test/Microsoft.AspNetCore.FunctionalTests/Microsoft.AspNetCore.FunctionalTests.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+
+ false
diff --git a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj
index c2c50d92a28a..4a70294b6c0e 100644
--- a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj
+++ b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj
@@ -5,6 +5,7 @@
+
diff --git a/src/Hosting/Hosting/test/WebHostTests.cs b/src/Hosting/Hosting/test/WebHostTests.cs
index 0bc568277c5a..ce22f0a375a3 100644
--- a/src/Hosting/Hosting/test/WebHostTests.cs
+++ b/src/Hosting/Hosting/test/WebHostTests.cs
@@ -14,6 +14,7 @@
using Microsoft.AspNetCore.Hosting.Server.Features;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Features;
+using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
@@ -194,7 +195,8 @@ public async Task WebHostShutsDownWhenTokenTriggers()
}
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/7291
public async Task WebHostStopAsyncUsesDefaultTimeoutIfGivenTokenDoesNotFire()
{
var data = new Dictionary
@@ -233,7 +235,8 @@ public async Task WebHostStopAsyncUsesDefaultTimeoutIfGivenTokenDoesNotFire()
}
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/7291
public async Task WebHostStopAsyncUsesDefaultTimeoutIfNoTokenProvided()
{
var data = new Dictionary
@@ -308,7 +311,8 @@ public async Task WebHostStopAsyncCanBeCancelledEarly()
}
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/7291
public void WebHostApplicationLifetimeEventsOrderedCorrectlyDuringShutdown()
{
using (var host = CreateBuilder()
@@ -1325,4 +1329,4 @@ public static IWebHostBuilder UseFakeServer(this IWebHostBuilder builder)
return builder.ConfigureServices(services => services.AddSingleton());
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Hosting/test/FunctionalTests/Microsoft.AspNetCore.Hosting.FunctionalTests.csproj b/src/Hosting/test/FunctionalTests/Microsoft.AspNetCore.Hosting.FunctionalTests.csproj
index 8aba2780e96e..f4f340b347f4 100644
--- a/src/Hosting/test/FunctionalTests/Microsoft.AspNetCore.Hosting.FunctionalTests.csproj
+++ b/src/Hosting/test/FunctionalTests/Microsoft.AspNetCore.Hosting.FunctionalTests.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+
+ false
diff --git a/src/Http/Routing/test/UnitTests/EndpointNameAddressSchemeTest.cs b/src/Http/Routing/test/UnitTests/EndpointNameAddressSchemeTest.cs
index d643372063cc..87893cc21be1 100644
--- a/src/Http/Routing/test/UnitTests/EndpointNameAddressSchemeTest.cs
+++ b/src/Http/Routing/test/UnitTests/EndpointNameAddressSchemeTest.cs
@@ -173,17 +173,17 @@ public void AddressScheme_ThrowsExceptionForDuplicateEndpoints()
var ex = Assert.Throws(() => addressScheme.FindEndpoints("any name"));
// Assert
- Assert.Equal(@"The following endpoints with a duplicate endpoint name were found.
-
-Endpoints with endpoint name 'name1':
-a
-b
-c
-
-Endpoints with endpoint name 'name2':
-e
-f
-", ex.Message);
+ Assert.Equal(String.Join(Environment.NewLine, @"The following endpoints with a duplicate endpoint name were found.",
+"",
+"Endpoints with endpoint name 'name1':",
+"a",
+"b",
+"c",
+"",
+"Endpoints with endpoint name 'name2':",
+"e",
+"f",
+""), ex.Message);
}
private EndpointNameAddressScheme CreateAddressScheme(params Endpoint[] endpoints)
diff --git a/src/Http/Routing/test/UnitTests/Internal/DfaGraphWriterTest.cs b/src/Http/Routing/test/UnitTests/Internal/DfaGraphWriterTest.cs
index bcabc39d37db..14efa64d360a 100644
--- a/src/Http/Routing/test/UnitTests/Internal/DfaGraphWriterTest.cs
+++ b/src/Http/Routing/test/UnitTests/Internal/DfaGraphWriterTest.cs
@@ -1,6 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+using System;
using System.IO;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing.Patterns;
@@ -33,10 +34,9 @@ public void Write_ExcludeNonRouteEndpoint()
graphWriter.Write(endpointsDataSource, writer);
// Assert
- Assert.Equal(@"digraph DFA {
-0 [label=""/""]
-}
-", writer.ToString());
+ Assert.Equal(String.Join(Environment.NewLine, @"digraph DFA {",
+@"0 [label=""/""]",
+"}") + Environment.NewLine, writer.ToString());
}
[Fact]
@@ -57,10 +57,9 @@ public void Write_ExcludeRouteEndpointWithSuppressMatchingMetadata()
graphWriter.Write(endpointsDataSource, writer);
// Assert
- Assert.Equal(@"digraph DFA {
-0 [label=""/""]
-}
-", writer.ToString());
+ Assert.Equal(String.Join(Environment.NewLine, @"digraph DFA {",
+@"0 [label=""/""]",
+@"}") + Environment.NewLine, writer.ToString());
}
[Fact]
@@ -82,14 +81,13 @@ public void Write_IncludeRouteEndpointWithPolicy()
// Assert
var sdf = writer.ToString();
- Assert.Equal(@"digraph DFA {
-0 [label=""/ HTTP: GET""]
-1 [label=""/ HTTP: *""]
-2 -> 0 [label=""HTTP: GET""]
-2 -> 1 [label=""HTTP: *""]
-2 [label=""/""]
-}
-", sdf);
+ Assert.Equal(String.Join(Environment.NewLine, @"digraph DFA {",
+@"0 [label=""/ HTTP: GET""]",
+@"1 [label=""/ HTTP: *""]",
+@"2 -> 0 [label=""HTTP: GET""]",
+@"2 -> 1 [label=""HTTP: *""]",
+@"2 [label=""/""]",
+@"}") + Environment.NewLine, sdf);
}
}
}
diff --git a/src/Http/Routing/test/UnitTests/Matching/DefaultEndpointSelectorTest.cs b/src/Http/Routing/test/UnitTests/Matching/DefaultEndpointSelectorTest.cs
index 7c5bdbdd9595..9d67c126d698 100644
--- a/src/Http/Routing/test/UnitTests/Matching/DefaultEndpointSelectorTest.cs
+++ b/src/Http/Routing/test/UnitTests/Matching/DefaultEndpointSelectorTest.cs
@@ -167,10 +167,8 @@ public async Task SelectAsync_MultipleValidCandidatesInGroup_ReportsAmbiguity()
// Assert
Assert.Equal(
-@"The request matched multiple endpoints. Matches:
-
-test: /test2
-test: /test3", ex.Message);
+@"The request matched multiple endpoints. Matches: " + Environment.NewLine + Environment.NewLine +
+"test: /test2" + Environment.NewLine + "test: /test3", ex.Message);
Assert.Null(context.Endpoint);
}
@@ -204,4 +202,4 @@ private static DefaultEndpointSelector CreateSelector()
return new DefaultEndpointSelector();
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs
index 450c59c8b409..40a22ff1a710 100644
--- a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs
+++ b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/ConfigureSigningCredentialsTests.cs
@@ -22,7 +22,8 @@ public class ConfigureSigningCredentialsTests
UnsafeEphemeralKeySet : (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? X509KeyStorageFlags.PersistKeySet :
X509KeyStorageFlags.DefaultKeySet);
- [ConditionalFact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
[FrameworkSkipCondition(RuntimeFrameworks.CLR)]
public void Configure_AddsDevelopmentKeyFromConfiguration()
{
@@ -62,7 +63,8 @@ public void Configure_AddsDevelopmentKeyFromConfiguration()
}
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
public void Configure_LoadsPfxCertificateCredentialFromConfiguration()
{
// Arrange
@@ -91,7 +93,8 @@ public void Configure_LoadsPfxCertificateCredentialFromConfiguration()
Assert.Equal("AC8FDF4BD4C10841BD24DC88D983225D10B43BB2", key.Certificate.Thumbprint);
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
public void Configure_LoadsCertificateStoreCertificateCredentialFromConfiguration()
{
try
diff --git a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs
index eb36e05ae7b5..8551f9ccae6d 100644
--- a/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs
+++ b/src/Identity/ApiAuthorization.IdentityServer/test/Configuration/SigningKeysLoaderTests.cs
@@ -58,7 +58,8 @@ public static void LoadFromStoreCert_ThrowsIfThereIsNoCertificateAvailable()
Assert.Equal("Couldn't find a valid certificate with subject 'Invalid' on the 'CurrentUser\\My'", exception.Message);
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
public static void LoadFromStoreCert_SkipsCertificatesNotYetValid()
{
try
@@ -80,7 +81,8 @@ public static void LoadFromStoreCert_SkipsCertificatesNotYetValid()
}
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
public static void LoadFromStoreCert_PrefersCertificatesCloserToExpirationDate()
{
try
@@ -102,7 +104,8 @@ public static void LoadFromStoreCert_PrefersCertificatesCloserToExpirationDate()
}
}
- [Fact]
+ [ConditionalFact]
+ [SkipOnHelix] // https://github.com/aspnet/AspNetCore/issues/6720
public static void LoadFromStoreCert_SkipsExpiredCertificates()
{
try
diff --git a/src/Identity/ApiAuthorization.IdentityServer/test/Microsoft.AspNetCore.ApiAuthorization.IdentityServer.Tests.csproj b/src/Identity/ApiAuthorization.IdentityServer/test/Microsoft.AspNetCore.ApiAuthorization.IdentityServer.Tests.csproj
index 6edd688ee0a2..3aa92b508419 100644
--- a/src/Identity/ApiAuthorization.IdentityServer/test/Microsoft.AspNetCore.ApiAuthorization.IdentityServer.Tests.csproj
+++ b/src/Identity/ApiAuthorization.IdentityServer/test/Microsoft.AspNetCore.ApiAuthorization.IdentityServer.Tests.csproj
@@ -6,6 +6,7 @@
+
diff --git a/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj b/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj
index 80893bda8efa..eef6ae2c6c17 100644
--- a/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj
+++ b/src/Identity/test/Identity.FunctionalTests/Microsoft.AspNetCore.Identity.FunctionalTests.csproj
@@ -2,6 +2,8 @@
netcoreapp3.0
+
+ false
diff --git a/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs b/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs
index f18fde8e52b2..64fe82e866ac 100644
--- a/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs
+++ b/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs
@@ -11,6 +11,7 @@
using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
+using Microsoft.AspNetCore.Testing.xunit;
using Xunit;
using Xunit.Abstractions;
@@ -37,7 +38,8 @@ public static IEnumerable