The Helix workitem timeout still looked for the old `Outerloop` property but we're using `TestScope` instead now.
trigger: none
-# Disabled until we get the build clean
-# schedules:
-# - cron: "0 8 * * *" # 8 AM UTC => 12 AM PST
-# displayName: Outerloop scheduled build
-# branches:
-# include:
-# - main
-# - release/*.*
+schedules:
+- cron: "0 8 * * *" # 8 AM UTC => 12 AM PST
+ displayName: Outerloop scheduled build
+ branches:
+ include:
+ - main
variables:
- template: variables.yml
[InlineData(100, 102)]
[InlineData(100, 103)]
[InlineData(100, 104)]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/79906", TestRuntimes.Mono)]
public void AllSubscriberStress(int numThreads, int numListenersPerThread)
{
// No listeners have been created yet
[ConditionalFact(nameof(IsAdmin_IsNotNano_RemoteExecutorIsSupported_CanShareFiles))] // Nano has no "netapi32.dll", Admin rights are required
[PlatformSpecific(TestPlatforms.Windows)]
[OuterLoop("Requires admin privileges")]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80019", TestRuntimes.Mono)]
public void TestUserNetworkCredentialsPropertiesOnWindows()
{
const string ShareName = "testForDotNet";
[ConditionalFact(nameof(IsAdmin_IsNotNano_RemoteExecutorIsSupported))] // Nano has no "netapi32.dll", Admin rights are required
[PlatformSpecific(TestPlatforms.Windows)]
[OuterLoop("Requires admin privileges")]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80019", TestRuntimes.Mono)]
public void TestUserCredentialsPropertiesOnWindows()
{
using Process longRunning = CreateProcessLong();
[MemberData(nameof(UseShellExecute))]
[OuterLoop("Launches notepad")]
[PlatformSpecific(TestPlatforms.Windows)]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34685", TestRuntimes.Mono)]
public void StartInfo_NotepadWithContent(bool useShellExecute)
{
string tempFile = GetTestFilePath() + ".txt";
nameof(PlatformDetection.IsNotWindows8x))] // https://github.com/dotnet/runtime/issues/22007
[OuterLoop("Launches notepad")]
[PlatformSpecific(TestPlatforms.Windows)]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34685", TestRuntimes.Mono)]
public void StartInfo_TextFile_ShellExecute()
{
// create a new extension that nobody else should be using
[MemberData(nameof(UseShellExecute))]
[OuterLoop("Launches notepad")]
[PlatformSpecific(TestPlatforms.Windows)]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34685", TestRuntimes.Mono)]
public void StartInfo_NotepadWithContent_withArgumentList(bool useShellExecute)
{
string tempFile = GetTestFilePath() + ".txt";
[Fact]
[OuterLoop("Opens program")]
[SkipOnPlatform(TestPlatforms.MacCatalyst, "In App Sandbox mode, the process doesn't have read access to the binary.")]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.Android | TestPlatforms.Browser, "Not supported on iOS/tvOS/Android/Browser.")]
public void ProcessStart_DirectoryNameInCurDirectorySameAsFileNameInExecDirectory_Success()
{
string fileToOpen = "dotnet";
[Fact]
[OuterLoop]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.Android | TestPlatforms.Browser, "Not supported on iOS/tvOS/Android/Browser.")]
public void ProcessStart_UseShellExecute_OnUnix_OpenMissingFile_DoesNotThrow()
{
if (OperatingSystem.IsLinux() &&
[Theory, InlineData(true), InlineData(false)]
[OuterLoop("Opens program")]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.Android | TestPlatforms.Browser, "Not supported on iOS/tvOS/Android/Browser.")]
public void ProcessStart_UseShellExecute_OnUnix_SuccessWhenProgramInstalled(bool isFolder)
{
string programToOpen = s_allowedProgramsToRun.FirstOrDefault(program => IsProgramInstalled(program));
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.HasWindowsShell))]
[OuterLoop("Launches File Explorer")]
- [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS, "Not supported on iOS and tvOS.")]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34685", TestRuntimes.Mono)]
public void ProcessStart_UseShellExecute_OnWindows_OpenMissingFile_Throws()
{
string fileToOpen = Path.Combine(Environment.CurrentDirectory, "_no_such_file.TXT");
[InlineData(true)]
[InlineData(false)]
[OuterLoop("Launches File Explorer")]
- [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS, "Not supported on iOS and tvOS.")]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34685", TestRuntimes.Mono)]
public void ProcessStart_UseShellExecute_OnWindows_DoesNotThrow(bool isFolder)
{
string fileToOpen;
}
[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoNorServerCore))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34442", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop("Takes too long on domain joined machines")]
[InlineData(ContextType.Machine, null)]
[InlineData(ContextType.Machine, "")]
}
[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoNorServerCore))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34442", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop("Takes too long on domain joined machines")]
[InlineData(ContextType.Machine, null, null)]
[InlineData(ContextType.Machine, "", null)]
}
[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoNorServerCore))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34442", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop("Takes too long on domain joined machines")]
[InlineData(ContextType.Machine, null, null, ContextOptions.Negotiate)]
[InlineData(ContextType.Machine, "", null, ContextOptions.Negotiate)]
}
[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoServer))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34442", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop("Takes too long on domain joined machines")]
[InlineData(DirectoryContextType.ApplicationPartition)]
[InlineData(DirectoryContextType.DirectoryServer)]
}
[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoServer))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34442", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop("Takes too long on domain joined machines")]
[InlineData("\0")]
[InlineData("[")]
}
[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoServer))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34442", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop("Takes too long on domain joined machines")]
[InlineData(DirectoryContextType.Forest, "\0")]
[InlineData(DirectoryContextType.DirectoryServer, "server:port")]
[Theory]
[MemberData(nameof(WriteEntry_LongFileSize_TheoryData))]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.Android | TestPlatforms.Browser, "Needs too much disk space.")]
public void WriteEntry_LongFileSize(TarEntryFormat entryFormat, long size, bool unseekableStream)
{
// Write archive with a 8 Gb long entry.
[Theory]
[MemberData(nameof(WriteEntry_LongFileSize_TheoryDataAsync))]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.Android | TestPlatforms.Browser, "Needs too much disk space.")]
public async Task WriteEntry_LongFileSizeAsync(TarEntryFormat entryFormat, long size, bool unseekableStream)
{
// Write archive with a 8 Gb long entry.
private const string Query = "SELECT * FROM __TimerEvent WHERE TimerID = 'MyEvent'";
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsElevatedAndSupportsWmi))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Receive_Events_Sync()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsElevatedAndSupportsWmi))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Receive_Events_Async()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsWmiSupported))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Related_Instances()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsWmiSupported))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Relationship_Classes()
{
public class ManagementObjectSearcherTestsMofRequired
{
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsElevatedAndSupportsWmi))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Static_Instances()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsElevatedAndSupportsWmi))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Static_Related_Instances()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsElevatedAndSupportsWmi))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Static_Relationship_Classes()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsWmiSupported))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void GetRelated_For_Win32_LogicalDisk()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsWmiSupported))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Invoke_Instance_And_Static_Method_Win32_Process()
{
}
[ConditionalFact(typeof(WmiTestHelper), nameof(WmiTestHelper.IsWmiSupported))]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/34689", TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp, TestRuntimes.Mono)]
[OuterLoop]
public void Serialize_ManagementException()
{
[Fact]
[OuterLoop] // this test takes ~10 seconds on modern hardware since it operates over GBs of data
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/79883", TestRuntimes.Mono)]
public static void GetBytes_Encoding_ReadOnlySequence_IBufferWriter_LargeMultiSegment()
{
ReadOnlySequence<char> sequence = GetLargeRepeatingReadOnlySequence<char>(AllScalarsAsUtf16, 1500); // ~ 3.2bn chars of UTF-16 input
options.Ttl = 1;
// This should always fail unless host is one IP hop away.
pingReply = await ping.SendPingAsync(host, TestSettings.PingTimeout, payload, options);
- Assert.True(pingReply.Status == IPStatus.TimeExceeded || pingReply.Status == IPStatus.TtlExpired);
+ Assert.True(pingReply.Status == IPStatus.TimeExceeded || pingReply.Status == IPStatus.TtlExpired, $"pingReply.Status was {pingReply.Status} instead of TimeExceeded or TtlExpired");
Assert.NotEqual(IPAddress.Any, pingReply.Address);
}
[InlineData(Environment.SpecialFolder.MyPictures)]
[InlineData(Environment.SpecialFolder.MyVideos)]
[InlineData(Environment.SpecialFolder.Templates)]
+ [SkipOnPlatform(TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.Android | TestPlatforms.Browser, "Not supported on iOS/tvOS/Android/Browser.")]
public void GetFolderPath_Unix_SpecialFolderDoesNotExist_CreatesSuccessfully(Environment.SpecialFolder folder)
{
string path = Environment.GetFolderPath(folder, Environment.SpecialFolderOption.DoNotVerify);
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))] // Requires a lot of memory
[OuterLoop("Takes a long time, allocates a lot of memory")]
+ [SkipOnMono("Frequently throws OOM on Mono")]
public static void ToString_ValidLargeFormat()
{
BigInteger b = new BigInteger(123456789000m);
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))] // Requires a lot of memory
[OuterLoop("Takes a long time, allocates a lot of memory")]
+ [SkipOnMono("Frequently throws OOM on Mono")]
public static void ToString_ValidLargeFormat()
{
double d = 123.0;
VerifySimpleDecrypt(encodedMessage, certLoader, expectedContentInfo);
}
- [Fact]
+ [ConditionalFact(typeof(PlatformSupport), nameof(PlatformSupport.IsRC2Supported))]
[OuterLoop(/* Leaks key on disk if interrupted */)]
public void TestDecryptSimpleAes256_RsaOaepSha256()
{
VerifySimpleDecrypt(encodedMessage, Certificates.RSASha256KeyTransfer1, expectedContentInfo);
}
- [Fact]
+ [ConditionalFact(typeof(PlatformSupport), nameof(PlatformSupport.IsRC2Supported))]
[OuterLoop(/* Leaks key on disk if interrupted */)]
public void TestDecryptSimpleAes256_RsaOaepSha384()
{
VerifySimpleDecrypt(encodedMessage, Certificates.RSA2048Sha256KeyTransfer1, expectedContentInfo);
}
- [Fact]
+ [ConditionalFact(typeof(PlatformSupport), nameof(PlatformSupport.IsRC2Supported))]
[OuterLoop(/* Leaks key on disk if interrupted */)]
public void TestDecryptSimpleAes256_RsaOaepSha512()
{
using System.Security.Cryptography.X509Certificates;
using Xunit;
+using Test.Cryptography;
+
namespace System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests
{
public class DecryptTestsRsaPaddingMode : DecryptTests
{
}
- [Theory]
+ [ConditionalTheory(typeof(PlatformSupport), nameof(PlatformSupport.IsRC2Supported))]
[MemberData(nameof(Roundtrip_RsaPaddingModes_TestData))]
[OuterLoop(/* Leaks key on disk if interrupted */)]
public static void Roundtrip_RsaPaddingModes(RSAEncryptionPadding rsaEncryptionPadding)
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.CanRunImpersonatedTests))]
[OuterLoop]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80019", TestRuntimes.Mono)]
public async Task RunImpersonatedAsync_TaskAndTaskOfT()
{
using WindowsIdentity currentWindowsIdentity = WindowsIdentity.GetCurrent();
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.CanRunImpersonatedTests))]
[OuterLoop]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80019", TestRuntimes.Mono)]
public void RunImpersonated_NameResolution()
{
using WindowsIdentity currentWindowsIdentity = WindowsIdentity.GetCurrent();
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.CanRunImpersonatedTests))]
[OuterLoop]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80019", TestRuntimes.Mono)]
public async Task RunImpersonatedAsync_NameResolution()
{
using WindowsIdentity currentWindowsIdentity = WindowsIdentity.GetCurrent();
[InlineData(5000, 1000, false)]
[InlineData(1000, 10_000, true)]
[InlineData(1000, 10_000, false)]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80020", TestRuntimes.Mono)]
public async Task WriteAsyncEnumerable_LongRunningEnumeration_Cancellation(
int cancellationTokenSourceDelayMilliseconds,
int enumeratorDelayMilliseconds,
{
[Fact]
[OuterLoop]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80020", TestRuntimes.Mono)]
public async Task MultipleThreadsLooping()
{
const int Iterations = 100;
}
[OuterLoop("Takes minutes to generate and compile thousands of expressions")]
- [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))] // consumes a lot of memory
+ [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess), nameof(PlatformDetection.IsNotMobile), nameof(PlatformDetection.IsNotBrowser))] // consumes a lot of memory, doesn't work on mobile
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/80018", TestRuntimes.Mono)]
public void PatternsDataSet_ConstructRegexForAll_SourceGenerated()
{
Parallel.ForEach(s_patternsDataSet.Value.Chunk(50), chunk =>
using System.Threading.Tasks;
using System.Tests;
using Microsoft.DotNet.RemoteExecutor;
+using Microsoft.DotNet.XUnitExtensions;
using Xunit;
using Xunit.Sdk;
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "Takes several minutes on .NET Framework")]
[OuterLoop("Takes several seconds")]
- [Theory]
+ [ConditionalTheory]
[MemberData(nameof(RegexHelpers.AvailableEngines_MemberData), MemberType = typeof(RegexHelpers))]
public async Task Match_VaryingLengthStrings_Huge(RegexEngine engine)
{
if (RegexHelpers.IsNonBacktracking(engine))
{
+ if (!RemoteExecutor.IsSupported)
+ {
+ throw new SkipTestException("RemoteExecutor is not supported on this platform.");
+ }
+
RemoteExecutor.Invoke(func, engine.ToString()).Dispose();
}
else
}
[OuterLoop("Can take over a minute")]
- [Theory]
+ [ConditionalTheory]
[MemberData(nameof(StressTestDeepNestingOfConcat_TestData))]
public async Task StressTestDeepNestingOfConcat(RegexEngine engine, string pattern, string anchor, string input, int pattern_repetition, int input_repetition)
{
if (RegexHelpers.IsNonBacktracking(engine))
{
+ if (!RemoteExecutor.IsSupported)
+ {
+ throw new SkipTestException("RemoteExecutor is not supported on this platform.");
+ }
+
RemoteExecutor.Invoke(func, engine.ToString(), fullpattern, fullinput).Dispose();
}
else
if (RegexHelpers.IsNonBacktracking(engine))
{
+ if (!RemoteExecutor.IsSupported)
+ {
+ throw new SkipTestException("RemoteExecutor is not supported on this platform.");
+ }
+
RemoteExecutor.Invoke(func, engine.ToString(), fullpattern, fullinput).Dispose();
}
else
Assert.True(regex.IsMatch("iI"));
}
- [Fact]
+ [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotMobile), nameof(PlatformDetection.IsNotBrowser))]
// This test creates a source generated engine for each of the ~870 cultures and ensures the result compiles. This test alone takes around 30
// seconds on a fast machine, so marking as OuterLoop.
[OuterLoop]
<_workItemTimeout Condition="'$(_workItemTimeout)' == '' and ('$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos')">00:45:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">00:45:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">01:00:00</_workItemTimeout>
- <_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and '$(Outerloop)' == 'true'">00:20:00</_workItemTimeout>
+ <_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and ('$(TestScope)' == 'outerloop' or '$(TestScope)' == 'all')">00:20:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == ''">00:15:00</_workItemTimeout>
<_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == ''">00:30:00</_workItemTimeout>
</PropertyGroup>