Imported Upstream version 6.0.0.172

Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-04-12 14:10:50 +00:00
parent 8016999e4d
commit 64ac736ec5
32155 changed files with 3981439 additions and 75368 deletions

View File

@@ -3,6 +3,7 @@
<Import Project="..\dir.props" />
<PropertyGroup>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<PackageVersion>4.5.1</PackageVersion>
<!-- System.Threading.Tasks.Extensions has forwarded types into the runtime on netcoreapp/uap
It must win over assemblies versioned at 4.2.* -->
<AssemblyVersion Condition="'$(TargetGroup)' == 'netcoreapp' OR '$(TargetGroup)' == 'uap' ">4.3.0.0</AssemblyVersion>

View File

@@ -5,6 +5,9 @@
<!-- we need to be supported on pre-nuget-3 platforms (Dev12, Dev11, etc) -->
<MinClientVersion>2.8.6</MinClientVersion>
</PropertyGroup>
<PropertyGroup>
<PackageVersion>4.5.2</PackageVersion>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\ref\System.Threading.Tasks.Extensions.csproj">
<SupportedFramework>net45;netcore45;netcoreapp1.0;wpa81;wp8;$(AllXamarinFrameworks)</SupportedFramework>
@@ -12,11 +15,16 @@
<ProjectReference Include="..\src\System.Threading.Tasks.Extensions.csproj" />
<InboxOnTargetFramework Include="netcoreapp2.1" />
<InboxOnTargetFramework Include="$(UAPvNextTFM)" />
<InboxOnTargetFramework Include="$(AllXamarinFrameworks)" />
<!-- this package is part of the implementation closure of NETStandard.Library
therefore it cannot reference NETStandard.Library -->
<SuppressMetaPackage Include="NETStandard.Library" />
</ItemGroup>
<PropertyGroup>
<!-- Excluding the reference assets on the package so that RAR will see the run-time conflicts at build time in order to
generate the right binding redirects when targeting Desktop. https://github.com/dotnet/corefx/issues/32457 -->
<ExcludeReferenceAssets>true</ExcludeReferenceAssets>
</PropertyGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>

View File

@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Runtime.CompilerServices;
using System.Threading.Tasks.Sources.Tests;
using Xunit;
namespace System.Threading.Tasks.Tests
@@ -355,20 +356,20 @@ namespace System.Threading.Tasks.Tests
await Task.FromResult(42);
await new ValueTask();
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(42));
Assert.Equal(42, await new ValueTask<int>(Task.FromResult(42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
// Incomplete
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.Delay(1).ContinueWith(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(Task.Delay(1).ContinueWith(_ => 42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.Delay(1).ContinueWith<int>(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
await Task.Yield();
}
}
@@ -382,20 +383,20 @@ namespace System.Threading.Tasks.Tests
await Task.FromResult(42);
await new ValueTask();
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(42));
Assert.Equal(42, await new ValueTask<int>(Task.FromResult(42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
// Incomplete
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.Delay(1).ContinueWith(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(Task.Delay(1).ContinueWith(_ => 42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.Delay(1).ContinueWith<int>(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
await Task.Yield();
}
return 17;
@@ -410,20 +411,20 @@ namespace System.Threading.Tasks.Tests
await Task.FromResult(42);
await new ValueTask();
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(42));
Assert.Equal(42, await new ValueTask<int>(Task.FromResult(42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
// Incomplete
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.Delay(1).ContinueWith(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(Task.Delay(1).ContinueWith(_ => 42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.Delay(1).ContinueWith<int>(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
await Task.Yield();
}
}
@@ -437,20 +438,20 @@ namespace System.Threading.Tasks.Tests
await Task.FromResult(42);
await new ValueTask();
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(42));
Assert.Equal(42, await new ValueTask<int>(Task.FromResult(42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.FromException<int>(new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Completed(0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(0, new FormatException()), 0));
// Incomplete
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(Task.Delay(1).ContinueWith(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
Assert.Equal(42, await new ValueTask<int>(Task.Delay(1).ContinueWith(_ => 42)));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 42, null), 0));
Assert.Equal(42, await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 42, null), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(Task.Delay(1).ContinueWith<int>(_ => throw new FormatException())));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0));
await Assert.ThrowsAsync<FormatException>(async () => await new ValueTask<int>(ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0));
await Task.Yield();
}
return 18;

View File

@@ -4,7 +4,7 @@
using System.Runtime.CompilerServices;
using System.Threading.Tasks.Sources;
using System.Threading.Tasks.Tests;
using System.Threading.Tasks.Sources.Tests;
using Microsoft.Xunit.Performance;
using Xunit;
@@ -49,7 +49,7 @@ namespace System.Threading.Tasks
[Benchmark(InnerIterationCount = 10_000_000), MeasureGCAllocations]
public async Task Await_FromCompletedValueTaskSource()
{
ValueTask<int> vt = new ValueTask<int>(ManualResetValueTaskSource.Completed<int>(42), 0);
ValueTask<int> vt = new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed<int>(42), 0);
foreach (BenchmarkIteration iteration in Benchmark.Iterations)
{
long iters = Benchmark.InnerIterationCount;
@@ -132,7 +132,7 @@ namespace System.Threading.Tasks
[Benchmark(InnerIterationCount = 10_000_000), MeasureGCAllocations]
public async Task CreateAndAwait_FromCompletedValueTaskSource()
{
IValueTaskSource<int> vts = ManualResetValueTaskSource.Completed(42);
IValueTaskSource<int> vts = ManualResetValueTaskSourceFactory.Completed(42);
foreach (BenchmarkIteration iteration in Benchmark.Iterations)
{
long iters = Benchmark.InnerIterationCount;
@@ -149,7 +149,7 @@ namespace System.Threading.Tasks
[Benchmark(InnerIterationCount = 10_000_000), MeasureGCAllocations]
public async Task CreateAndAwait_FromCompletedValueTaskSource_ConfigureAwait()
{
IValueTaskSource<int> vts = ManualResetValueTaskSource.Completed(42);
IValueTaskSource<int> vts = ManualResetValueTaskSourceFactory.Completed(42);
foreach (BenchmarkIteration iteration in Benchmark.Iterations)
{
long iters = Benchmark.InnerIterationCount;
@@ -235,7 +235,7 @@ namespace System.Threading.Tasks
[Benchmark(InnerIterationCount = 10_000_000), MeasureGCAllocations]
public void Copy_PassAsArgumentAndReturn_FromValueTaskSource()
{
ValueTask<int> vt = new ValueTask<int>(ManualResetValueTaskSource.Completed(42), 0);
ValueTask<int> vt = new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42), 0);
foreach (BenchmarkIteration iteration in Benchmark.Iterations)
{
long iters = Benchmark.InnerIterationCount;

View File

@@ -16,6 +16,9 @@
<Compile Include="$(CommonTestPath)\System\Threading\Tasks\Sources\ManualResetValueTaskSource.cs">
<Link>Common\System\Threading\Tasks\Sources\ManualResetValueTaskSource.cs</Link>
</Compile>
<Compile Include="$(CommonTestPath)\System\Threading\Tasks\Sources\ManualResetValueTaskSourceFactory.cs">
<Link>Common\System\Threading\Tasks\Sources\ManualResetValueTaskSourceFactory.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(CommonPath)\..\perf\PerfRunner\PerfRunner.csproj">

View File

@@ -12,14 +12,20 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Release|AnyCPU'" />
<ItemGroup>
<Compile Include="AsyncMethodBuilderAttributeTests.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetGroup)' == 'netcoreapp'">
<Compile Include="AsyncValueTaskMethodBuilderTests.cs" />
<Compile Include="ManualResetValueTaskSourceTests.cs" />
<Compile Include="ValueTaskTests.cs" />
<Compile Include="$(CommonTestPath)\System\Threading\Tasks\Sources\ManualResetValueTaskSource.cs">
<Link>Common\System\Threading\Tasks\Sources\ManualResetValueTaskSource.cs</Link>
</Compile>
<Compile Include="$(CommonTestPath)\System\Threading\Tasks\Sources\ManualResetValueTaskSourceFactory.cs">
<Link>Common\System\Threading\Tasks\Sources\ManualResetValueTaskSourceFactory.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
</Project>
</Project>

View File

@@ -6,6 +6,7 @@ using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Threading.Tasks.Sources;
using System.Threading.Tasks.Sources.Tests;
using Xunit;
namespace System.Threading.Tasks.Tests
@@ -53,7 +54,7 @@ namespace System.Threading.Tasks.Tests
ValueTask t =
mode == CtorMode.Result ? default :
mode == CtorMode.Task ? new ValueTask(Task.CompletedTask) :
new ValueTask(ManualResetValueTaskSource.Completed(0, null), 0);
new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, null), 0);
Assert.True(t.IsCompleted);
Assert.True(t.IsCompletedSuccessfully);
Assert.False(t.IsFaulted);
@@ -69,7 +70,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> t =
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(Task.FromResult(42)) :
new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0);
new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0);
Assert.True(t.IsCompleted);
Assert.True(t.IsCompletedSuccessfully);
Assert.False(t.IsFaulted);
@@ -269,7 +270,7 @@ namespace System.Threading.Tasks.Tests
public void NonGeneric_CreateFromFaulted_IsFaulted(CtorMode mode)
{
InvalidOperationException e = new InvalidOperationException();
ValueTask t = mode == CtorMode.Task ? new ValueTask(Task.FromException(e)) : new ValueTask(ManualResetValueTaskSource.Completed<int>(0, e), 0);
ValueTask t = mode == CtorMode.Task ? new ValueTask(Task.FromException(e)) : new ValueTask(ManualResetValueTaskSourceFactory.Completed<int>(0, e), 0);
Assert.True(t.IsCompleted);
Assert.False(t.IsCompletedSuccessfully);
@@ -285,7 +286,7 @@ namespace System.Threading.Tasks.Tests
public void Generic_CreateFromFaulted_IsFaulted(CtorMode mode)
{
InvalidOperationException e = new InvalidOperationException();
ValueTask<int> t = mode == CtorMode.Task ? new ValueTask<int>(Task.FromException<int>(e)) : new ValueTask<int>(ManualResetValueTaskSource.Completed<int>(0, e), 0);
ValueTask<int> t = mode == CtorMode.Task ? new ValueTask<int>(Task.FromException<int>(e)) : new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed<int>(0, e), 0);
Assert.True(t.IsCompleted);
Assert.False(t.IsCompletedSuccessfully);
@@ -349,7 +350,7 @@ namespace System.Threading.Tasks.Tests
[Fact]
public void NonGeneric_CreateFromValueTaskSource_AsTaskIdempotent() // validates unsupported behavior specific to the backing IValueTaskSource
{
var vt = new ValueTask(ManualResetValueTaskSource.Completed<int>(42, null), 0);
var vt = new ValueTask(ManualResetValueTaskSourceFactory.Completed<int>(42, null), 0);
Task t = vt.AsTask();
Assert.NotNull(t);
Assert.Same(t, vt.AsTask());
@@ -359,7 +360,7 @@ namespace System.Threading.Tasks.Tests
[Fact]
public void Generic_CreateFromValueTaskSource_AsTaskNotIdempotent() // validates unsupported behavior specific to the backing IValueTaskSource
{
var t = new ValueTask<int>(ManualResetValueTaskSource.Completed<int>(42, null), 0);
var t = new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed<int>(42, null), 0);
Assert.NotSame(Task.FromResult(42), t.AsTask());
Assert.NotSame(t.AsTask(), t.AsTask());
}
@@ -369,7 +370,7 @@ namespace System.Threading.Tasks.Tests
[InlineData(true)]
public async Task NonGeneric_CreateFromValueTaskSource_Success(bool sync)
{
var vt = new ValueTask(sync ? ManualResetValueTaskSource.Completed(0) : ManualResetValueTaskSource.Delay(1, 0), 0);
var vt = new ValueTask(sync ? ManualResetValueTaskSourceFactory.Completed(0) : ManualResetValueTaskSourceFactory.Delay(1, 0), 0);
Task t = vt.AsTask();
if (sync)
{
@@ -383,7 +384,7 @@ namespace System.Threading.Tasks.Tests
[InlineData(true)]
public async Task Generic_CreateFromValueTaskSource_Success(bool sync)
{
var vt = new ValueTask<int>(sync ? ManualResetValueTaskSource.Completed(42) : ManualResetValueTaskSource.Delay(1, 42), 0);
var vt = new ValueTask<int>(sync ? ManualResetValueTaskSourceFactory.Completed(42) : ManualResetValueTaskSourceFactory.Delay(1, 42), 0);
Task<int> t = vt.AsTask();
if (sync)
{
@@ -397,7 +398,7 @@ namespace System.Threading.Tasks.Tests
[InlineData(true)]
public async Task NonGeneric_CreateFromValueTaskSource_Faulted(bool sync)
{
var vt = new ValueTask(sync ? ManualResetValueTaskSource.Completed(0, new FormatException()) : ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0);
var vt = new ValueTask(sync ? ManualResetValueTaskSourceFactory.Completed(0, new FormatException()) : ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0);
Task t = vt.AsTask();
if (sync)
{
@@ -415,7 +416,7 @@ namespace System.Threading.Tasks.Tests
[InlineData(true)]
public async Task Generic_CreateFromValueTaskSource_Faulted(bool sync)
{
var vt = new ValueTask<int>(sync ? ManualResetValueTaskSource.Completed(0, new FormatException()) : ManualResetValueTaskSource.Delay(1, 0, new FormatException()), 0);
var vt = new ValueTask<int>(sync ? ManualResetValueTaskSourceFactory.Completed(0, new FormatException()) : ManualResetValueTaskSourceFactory.Delay(1, 0, new FormatException()), 0);
Task<int> t = vt.AsTask();
if (sync)
{
@@ -433,7 +434,7 @@ namespace System.Threading.Tasks.Tests
[InlineData(true)]
public async Task NonGeneric_CreateFromValueTaskSource_Canceled(bool sync)
{
var vt = new ValueTask(sync ? ManualResetValueTaskSource.Completed(0, new OperationCanceledException()) : ManualResetValueTaskSource.Delay(1, 0, new OperationCanceledException()), 0);
var vt = new ValueTask(sync ? ManualResetValueTaskSourceFactory.Completed(0, new OperationCanceledException()) : ManualResetValueTaskSourceFactory.Delay(1, 0, new OperationCanceledException()), 0);
Task t = vt.AsTask();
if (sync)
{
@@ -451,7 +452,7 @@ namespace System.Threading.Tasks.Tests
[InlineData(true)]
public async Task Generic_CreateFromValueTaskSource_Canceled(bool sync)
{
var vt = new ValueTask<int>(sync ? ManualResetValueTaskSource.Completed(0, new OperationCanceledException()) : ManualResetValueTaskSource.Delay(1, 0, new OperationCanceledException()), 0);
var vt = new ValueTask<int>(sync ? ManualResetValueTaskSourceFactory.Completed(0, new OperationCanceledException()) : ManualResetValueTaskSourceFactory.Delay(1, 0, new OperationCanceledException()), 0);
Task<int> t = vt.AsTask();
if (sync)
{
@@ -483,7 +484,7 @@ namespace System.Threading.Tasks.Tests
[Fact]
public void NonGeneric_Preserve_FromValueTaskSource_TransitionedToTask()
{
ValueTask vt1 = new ValueTask(ManualResetValueTaskSource.Completed(42), 0);
ValueTask vt1 = new ValueTask(ManualResetValueTaskSourceFactory.Completed(42), 0);
ValueTask vt2 = vt1.Preserve();
ValueTask vt3 = vt2.Preserve();
Assert.True(vt1 != vt2);
@@ -510,7 +511,7 @@ namespace System.Threading.Tasks.Tests
[Fact]
public void Generic_Preserve_FromValueTaskSource_TransitionedToTask()
{
ValueTask<int> vt1 = new ValueTask<int>(ManualResetValueTaskSource.Completed(42), 0);
ValueTask<int> vt1 = new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42), 0);
ValueTask<int> vt2 = vt1.Preserve();
ValueTask<int> vt3 = vt2.Preserve();
Assert.True(vt1 != vt2);
@@ -527,7 +528,7 @@ namespace System.Threading.Tasks.Tests
ValueTask Create() =>
mode == CtorMode.Result ? new ValueTask() :
mode == CtorMode.Task ? new ValueTask(Task.FromResult(42)) :
new ValueTask(ManualResetValueTaskSource.Completed(0, null), 0);
new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, null), 0);
int thread = Environment.CurrentManagedThreadId;
@@ -550,7 +551,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> Create() =>
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(Task.FromResult(42)) :
new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0);
new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0);
int thread = Environment.CurrentManagedThreadId;
@@ -633,7 +634,7 @@ namespace System.Threading.Tasks.Tests
ValueTask t =
mode == CtorMode.Result ? new ValueTask() :
mode == CtorMode.Task ? new ValueTask(Task.CompletedTask) :
new ValueTask(ManualResetValueTaskSource.Completed(0, null), 0);
new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.GetAwaiter().OnCompleted(() => tcs.SetResult(true));
@@ -649,7 +650,7 @@ namespace System.Threading.Tasks.Tests
ValueTask t =
mode == CtorMode.Result ? new ValueTask() :
mode == CtorMode.Task ? new ValueTask(Task.CompletedTask) :
new ValueTask(ManualResetValueTaskSource.Completed(0, null), 0);
new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.GetAwaiter().UnsafeOnCompleted(() => tcs.SetResult(true));
@@ -665,7 +666,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> t =
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(Task.FromResult(42)) :
new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0);
new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.GetAwaiter().OnCompleted(() => tcs.SetResult(true));
@@ -681,7 +682,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> t =
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(Task.FromResult(42)) :
new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0);
new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.GetAwaiter().UnsafeOnCompleted(() => tcs.SetResult(true));
@@ -700,7 +701,7 @@ namespace System.Threading.Tasks.Tests
ValueTask t =
mode == CtorMode.Result ? new ValueTask() :
mode == CtorMode.Task ? new ValueTask(Task.CompletedTask) :
new ValueTask(ManualResetValueTaskSource.Completed(0, null), 0);
new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.ConfigureAwait(continueOnCapturedContext).GetAwaiter().OnCompleted(() => tcs.SetResult(true));
@@ -719,7 +720,7 @@ namespace System.Threading.Tasks.Tests
ValueTask t =
mode == CtorMode.Result ? new ValueTask() :
mode == CtorMode.Task ? new ValueTask(Task.CompletedTask) :
new ValueTask(ManualResetValueTaskSource.Completed(0, null), 0);
new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.ConfigureAwait(continueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(() => tcs.SetResult(true));
@@ -738,7 +739,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> t =
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(Task.FromResult(42)) :
new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0);
new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.ConfigureAwait(continueOnCapturedContext).GetAwaiter().OnCompleted(() => tcs.SetResult(true));
@@ -757,7 +758,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> t =
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(Task.FromResult(42)) :
new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0);
new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0);
var tcs = new TaskCompletionSource<bool>();
t.ConfigureAwait(continueOnCapturedContext).GetAwaiter().UnsafeOnCompleted(() => tcs.SetResult(true));
@@ -779,7 +780,7 @@ namespace System.Threading.Tasks.Tests
ValueTask t =
mode == CtorMode.Result ? new ValueTask() :
mode == CtorMode.Task ? new ValueTask(Task.CompletedTask) :
new ValueTask(ManualResetValueTaskSource.Completed(0, null), 0);
new ValueTask(ManualResetValueTaskSourceFactory.Completed(0, null), 0);
var mres = new ManualResetEventSlim();
t.GetAwaiter().OnCompleted(() => mres.Set());
@@ -810,7 +811,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> t =
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(sync ? Task.FromResult(42) : Task.Delay(1).ContinueWith(_ => 42)) :
new ValueTask<int>(sync ? ManualResetValueTaskSource.Completed(42, null) : ManualResetValueTaskSource.Delay(1, 42, null), 0);
new ValueTask<int>(sync ? ManualResetValueTaskSourceFactory.Completed(42, null) : ManualResetValueTaskSourceFactory.Delay(1, 42, null), 0);
var mres = new ManualResetEventSlim();
t.GetAwaiter().OnCompleted(() => mres.Set());
@@ -846,7 +847,7 @@ namespace System.Threading.Tasks.Tests
ValueTask t =
mode == CtorMode.Result ? new ValueTask() :
mode == CtorMode.Task ? new ValueTask(sync ? Task.CompletedTask : Task.Delay(1)) :
new ValueTask(sync ? ManualResetValueTaskSource.Completed(0, null) : ManualResetValueTaskSource.Delay(42, 0, null), 0);
new ValueTask(sync ? ManualResetValueTaskSourceFactory.Completed(0, null) : ManualResetValueTaskSourceFactory.Delay(42, 0, null), 0);
var mres = new ManualResetEventSlim();
t.ConfigureAwait(continueOnCapturedContext).GetAwaiter().OnCompleted(() => mres.Set());
@@ -882,7 +883,7 @@ namespace System.Threading.Tasks.Tests
ValueTask<int> t =
mode == CtorMode.Result ? new ValueTask<int>(42) :
mode == CtorMode.Task ? new ValueTask<int>(sync ? Task.FromResult(42) : Task.Delay(1).ContinueWith(_ => 42)) :
new ValueTask<int>(sync ? ManualResetValueTaskSource.Completed(42, null) : ManualResetValueTaskSource.Delay(1, 42, null), 0);
new ValueTask<int>(sync ? ManualResetValueTaskSourceFactory.Completed(42, null) : ManualResetValueTaskSourceFactory.Delay(1, 42, null), 0);
var mres = new ManualResetEventSlim();
t.ConfigureAwait(continueOnCapturedContext).GetAwaiter().OnCompleted(() => mres.Set());
@@ -929,7 +930,7 @@ namespace System.Threading.Tasks.Tests
}
else
{
var t = ManualResetValueTaskSource.Completed(42, null);
var t = ManualResetValueTaskSourceFactory.Completed(42, null);
vt = new ValueTask(t, 0);
obj = t;
}
@@ -952,7 +953,7 @@ namespace System.Threading.Tasks.Tests
}
else
{
ManualResetValueTaskSource<int> t = ManualResetValueTaskSource.Completed(42, null);
ManualResetValueTaskSource<int> t = ManualResetValueTaskSourceFactory.Completed(42, null);
vt = new ValueTask<int>(t, 0);
obj = t;
}
@@ -966,7 +967,7 @@ namespace System.Threading.Tasks.Tests
var completedTcs = new TaskCompletionSource<int>();
completedTcs.SetResult(42);
var completedVts = ManualResetValueTaskSource.Completed(42, null);
var completedVts = ManualResetValueTaskSourceFactory.Completed(42, null);
Assert.True(new ValueTask() == new ValueTask());
Assert.True(new ValueTask(Task.CompletedTask) == new ValueTask(Task.CompletedTask));
@@ -983,7 +984,7 @@ namespace System.Threading.Tasks.Tests
public void Generic_OperatorEquals()
{
var completedTask = Task.FromResult(42);
var completedVts = ManualResetValueTaskSource.Completed(42, null);
var completedVts = ManualResetValueTaskSourceFactory.Completed(42, null);
Assert.True(new ValueTask<int>(42) == new ValueTask<int>(42));
Assert.True(new ValueTask<int>(completedTask) == new ValueTask<int>(completedTask));
@@ -998,7 +999,7 @@ namespace System.Threading.Tasks.Tests
Assert.False(new ValueTask<int>(42) == new ValueTask<int>(Task.FromResult(42)));
Assert.False(new ValueTask<int>(Task.FromResult(42)) == new ValueTask<int>(42));
Assert.False(new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0) == new ValueTask<int>(42));
Assert.False(new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0) == new ValueTask<int>(42));
Assert.False(new ValueTask<int>(completedTask) == new ValueTask<int>(completedVts, 0));
Assert.False(new ValueTask<int>(completedVts, 17) == new ValueTask<int>(completedVts, 18));
}
@@ -1009,7 +1010,7 @@ namespace System.Threading.Tasks.Tests
var completedTcs = new TaskCompletionSource<int>();
completedTcs.SetResult(42);
var completedVts = ManualResetValueTaskSource.Completed(42, null);
var completedVts = ManualResetValueTaskSourceFactory.Completed(42, null);
Assert.False(new ValueTask() != new ValueTask());
Assert.False(new ValueTask(Task.CompletedTask) != new ValueTask(Task.CompletedTask));
@@ -1026,7 +1027,7 @@ namespace System.Threading.Tasks.Tests
public void Generic_OperatorNotEquals()
{
var completedTask = Task.FromResult(42);
var completedVts = ManualResetValueTaskSource.Completed(42, null);
var completedVts = ManualResetValueTaskSourceFactory.Completed(42, null);
Assert.False(new ValueTask<int>(42) != new ValueTask<int>(42));
Assert.False(new ValueTask<int>(completedTask) != new ValueTask<int>(completedTask));
@@ -1041,7 +1042,7 @@ namespace System.Threading.Tasks.Tests
Assert.True(new ValueTask<int>(42) != new ValueTask<int>(Task.FromResult(42)));
Assert.True(new ValueTask<int>(Task.FromResult(42)) != new ValueTask<int>(42));
Assert.True(new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0) != new ValueTask<int>(42));
Assert.True(new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0) != new ValueTask<int>(42));
Assert.True(new ValueTask<int>(completedTask) != new ValueTask<int>(completedVts, 0));
Assert.True(new ValueTask<int>(completedVts, 17) != new ValueTask<int>(completedVts, 18));
}
@@ -1053,10 +1054,10 @@ namespace System.Threading.Tasks.Tests
Assert.False(new ValueTask().Equals(new ValueTask(Task.CompletedTask)));
Assert.False(new ValueTask(Task.CompletedTask).Equals(new ValueTask()));
Assert.False(new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0).Equals(new ValueTask()));
Assert.False(new ValueTask().Equals(new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0)));
Assert.False(new ValueTask(Task.CompletedTask).Equals(new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0)));
Assert.False(new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0).Equals(new ValueTask(Task.CompletedTask)));
Assert.False(new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0).Equals(new ValueTask()));
Assert.False(new ValueTask().Equals(new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0)));
Assert.False(new ValueTask(Task.CompletedTask).Equals(new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0)));
Assert.False(new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0).Equals(new ValueTask(Task.CompletedTask)));
}
[Fact]
@@ -1073,7 +1074,7 @@ namespace System.Threading.Tasks.Tests
Assert.False(new ValueTask<int>(42).Equals(new ValueTask<int>(Task.FromResult(42))));
Assert.False(new ValueTask<int>(Task.FromResult(42)).Equals(new ValueTask<int>(42)));
Assert.False(new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0).Equals(new ValueTask<int>(42)));
Assert.False(new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0).Equals(new ValueTask<int>(42)));
}
[Fact]
@@ -1083,15 +1084,15 @@ namespace System.Threading.Tasks.Tests
Assert.False(new ValueTask().Equals((object)new ValueTask(Task.CompletedTask)));
Assert.False(new ValueTask(Task.CompletedTask).Equals((object)new ValueTask()));
Assert.False(new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0).Equals((object)new ValueTask()));
Assert.False(new ValueTask().Equals((object)new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0)));
Assert.False(new ValueTask(Task.CompletedTask).Equals((object)new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0)));
Assert.False(new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0).Equals((object)new ValueTask(Task.CompletedTask)));
Assert.False(new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0).Equals((object)new ValueTask()));
Assert.False(new ValueTask().Equals((object)new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0)));
Assert.False(new ValueTask(Task.CompletedTask).Equals((object)new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0)));
Assert.False(new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0).Equals((object)new ValueTask(Task.CompletedTask)));
Assert.False(new ValueTask().Equals(null));
Assert.False(new ValueTask().Equals("12345"));
Assert.False(new ValueTask(Task.CompletedTask).Equals("12345"));
Assert.False(new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0).Equals("12345"));
Assert.False(new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0).Equals("12345"));
}
[Fact]
@@ -1108,7 +1109,7 @@ namespace System.Threading.Tasks.Tests
Assert.False(new ValueTask<int>(42).Equals((object)new ValueTask<int>(Task.FromResult(42))));
Assert.False(new ValueTask<int>(Task.FromResult(42)).Equals((object)new ValueTask<int>(42)));
Assert.False(new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0).Equals((object)new ValueTask<int>(42)));
Assert.False(new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0).Equals((object)new ValueTask<int>(42)));
Assert.False(new ValueTask<int>(42).Equals((object)null));
Assert.False(new ValueTask<int>(42).Equals(new object()));
@@ -1120,7 +1121,7 @@ namespace System.Threading.Tasks.Tests
{
Assert.Equal("System.Threading.Tasks.ValueTask", new ValueTask().ToString());
Assert.Equal("System.Threading.Tasks.ValueTask", new ValueTask(Task.CompletedTask).ToString());
Assert.Equal("System.Threading.Tasks.ValueTask", new ValueTask(ManualResetValueTaskSource.Completed(42, null), 0).ToString());
Assert.Equal("System.Threading.Tasks.ValueTask", new ValueTask(ManualResetValueTaskSourceFactory.Completed(42, null), 0).ToString());
}
[Fact]
@@ -1128,19 +1129,19 @@ namespace System.Threading.Tasks.Tests
{
Assert.Equal("Hello", new ValueTask<string>("Hello").ToString());
Assert.Equal("Hello", new ValueTask<string>(Task.FromResult("Hello")).ToString());
Assert.Equal("Hello", new ValueTask<string>(ManualResetValueTaskSource.Completed("Hello", null), 0).ToString());
Assert.Equal("Hello", new ValueTask<string>(ManualResetValueTaskSourceFactory.Completed("Hello", null), 0).ToString());
Assert.Equal("42", new ValueTask<int>(42).ToString());
Assert.Equal("42", new ValueTask<int>(Task.FromResult(42)).ToString());
Assert.Equal("42", new ValueTask<int>(ManualResetValueTaskSource.Completed(42, null), 0).ToString());
Assert.Equal("42", new ValueTask<int>(ManualResetValueTaskSourceFactory.Completed(42, null), 0).ToString());
Assert.Same(string.Empty, new ValueTask<string>(string.Empty).ToString());
Assert.Same(string.Empty, new ValueTask<string>(Task.FromResult(string.Empty)).ToString());
Assert.Same(string.Empty, new ValueTask<string>(ManualResetValueTaskSource.Completed(string.Empty, null), 0).ToString());
Assert.Same(string.Empty, new ValueTask<string>(ManualResetValueTaskSourceFactory.Completed(string.Empty, null), 0).ToString());
Assert.Same(string.Empty, new ValueTask<string>(Task.FromException<string>(new InvalidOperationException())).ToString());
Assert.Same(string.Empty, new ValueTask<string>(Task.FromException<string>(new OperationCanceledException())).ToString());
Assert.Same(string.Empty, new ValueTask<string>(ManualResetValueTaskSource.Completed<string>(null, new InvalidOperationException()), 0).ToString());
Assert.Same(string.Empty, new ValueTask<string>(ManualResetValueTaskSourceFactory.Completed<string>(null, new InvalidOperationException()), 0).ToString());
Assert.Same(string.Empty, new ValueTask<string>(Task.FromCanceled<string>(new CancellationToken(true))).ToString());
@@ -1148,7 +1149,7 @@ namespace System.Threading.Tasks.Tests
Assert.Same(string.Empty, default(ValueTask<string>).ToString());
Assert.Same(string.Empty, new ValueTask<string>((string)null).ToString());
Assert.Same(string.Empty, new ValueTask<string>(Task.FromResult<string>(null)).ToString());
Assert.Same(string.Empty, new ValueTask<string>(ManualResetValueTaskSource.Completed<string>(null, null), 0).ToString());
Assert.Same(string.Empty, new ValueTask<string>(ManualResetValueTaskSourceFactory.Completed<string>(null, null), 0).ToString());
Assert.Same(string.Empty, new ValueTask<DateTime>(new TaskCompletionSource<DateTime>().Task).ToString());
}
@@ -1272,7 +1273,7 @@ namespace System.Threading.Tasks.Tests
// _obj is an IValueTaskSource but other fields are from Task construction
vtBoxed = new ValueTask(Task.CompletedTask);
vtBoxed.GetType().GetField("_obj", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(vtBoxed, ManualResetValueTaskSource.Completed(42));
vtBoxed.GetType().GetField("_obj", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(vtBoxed, ManualResetValueTaskSourceFactory.Completed(42));
Record.Exception(() =>
{
bool completed = ((ValueTask)vtBoxed).IsCompleted;
@@ -1307,7 +1308,7 @@ namespace System.Threading.Tasks.Tests
// _obj is an IValueTaskSource but other fields are from Task construction
vtBoxed = new ValueTask<int>(Task.FromResult(42));
vtBoxed.GetType().GetField("_obj", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(vtBoxed, ManualResetValueTaskSource.Completed(42));
vtBoxed.GetType().GetField("_obj", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(vtBoxed, ManualResetValueTaskSourceFactory.Completed(42));
Record.Exception(() =>
{
bool completed = ((ValueTask)vtBoxed).IsCompleted;