Imported Upstream version 5.2.0.175

Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-06-07 13:16:24 +00:00
parent 4bdbaf4a88
commit 966bba02bb
8776 changed files with 346420 additions and 149650 deletions

View File

@@ -1,93 +1,50 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests.Tests", "tests\System.Net.Requests.Tests.csproj", "{851A40FE-7F07-415D-8592-5FE2096E84D3}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests.Tests", "tests\System.Net.Requests.Tests.csproj", "{E520B5FD-C6FF-46CF-8079-6C8098013EA3}"
ProjectSection(ProjectDependencies) = postProject
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{12C1E5BE-BB3B-4BE0-AE32-B12A31350D61}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C16D28FB-8C73-4572-A4C8-DBC4E9B4EE93}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{C13A51C0-C98C-43A9-8635-C06AF3895A69}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests", "ref\System.Net.Requests.csproj", "{A9749593-5875-4880-99E8-41BD4796E92D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests", "src\System.Net.Requests.csproj", "{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}"
ProjectSection(ProjectDependencies) = postProject
{F86C715C-E37B-4853-869E-D696AB3DB057} = {F86C715C-E37B-4853-869E-D696AB3DB057}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Requests", "ref\System.Net.Requests.csproj", "{F86C715C-E37B-4853-869E-D696AB3DB057}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{2E666815-2EDB-464B-9DF6-380BF4789AD4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU
DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU = ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Debug|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Release|Any CPU
{851A40FE-7F07-415D-8592-5FE2096E84D3}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Unix-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Unixnetcoreapp|AnyCPU.Build.0 = netcoreapp-Unix-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnetcoreapp-Windows_NTnetcoreapp|AnyCPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.DebugNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.ActiveCfg = net463-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.ReleaseNETCoreAppnet463-Windows_NTnetcoreapp|AnyCPU.Build.0 = net463-Windows_NT-Release|Any CPU
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU
{E520B5FD-C6FF-46CF-8079-6C8098013EA3}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
{F86C715C-E37B-4853-869E-D696AB3DB057}.Debug|Any CPU.ActiveCfg = netcoreapp-Debug|Any CPU
{F86C715C-E37B-4853-869E-D696AB3DB057}.Debug|Any CPU.Build.0 = netcoreapp-Debug|Any CPU
{F86C715C-E37B-4853-869E-D696AB3DB057}.Release|Any CPU.ActiveCfg = netcoreapp-Release|Any CPU
{F86C715C-E37B-4853-869E-D696AB3DB057}.Release|Any CPU.Build.0 = netcoreapp-Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{851A40FE-7F07-415D-8592-5FE2096E84D3} = {851A40FE-7F07-415D-8592-5FE2096E84D3}
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {5EE76DCC-9FD5-47FD-AB45-BD0F0857740F}
{E520B5FD-C6FF-46CF-8079-6C8098013EA3} = {1A2F9F4A-A032-433E-B914-ADD5992BB178}
{5EE76DCC-9FD5-47FD-AB45-BD0F0857740F} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD}
{F86C715C-E37B-4853-869E-D696AB3DB057} = {2E666815-2EDB-464B-9DF6-380BF4789AD4}
EndGlobalSection
EndGlobal

View File

@@ -4,5 +4,6 @@
<PropertyGroup>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<IsNETCoreApp>true</IsNETCoreApp>
<IsUAP>true</IsUAP>
</PropertyGroup>
</Project>

View File

@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<PropertyGroup>
<ProjectGuid>{F86C715C-E37B-4853-869E-D696AB3DB057}</ProjectGuid>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Debug|AnyCPU'" />

View File

@@ -4,7 +4,7 @@
<BuildConfigurations>
netcoreapp-Unix;
netcoreapp-Windows_NT;
net463-Windows_NT;
uap-Windows_NT;
</BuildConfigurations>
</PropertyGroup>
</Project>

View File

@@ -1,64 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
@@ -117,21 +58,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="NotSupported" xml:space="preserve">
<value>This operation is not supported.</value>
</data>
<data name="net_unknown_prefix" xml:space="preserve">
<value>The URI prefix is not recognized.</value>
</data>
<data name="net_headers_toolong" xml:space="preserve">
<value>Header values cannot be longer than {0} characters.</value>
</data>
<data name="net_emptystringcall" xml:space="preserve">
<value>The parameter '{0}' cannot be an empty string.</value>
</data>
<data name="net_headers_req" xml:space="preserve">
<value> This collection holds response headers and cannot contain the specified request header.</value>
</data>
<data name="net_reqsubmitted" xml:space="preserve">
<value>This operation cannot be performed after the request has been submitted.</value>
</data>
@@ -183,9 +112,6 @@
<data name="net_webstatus_Timeout" xml:space="preserve">
<value>The operation has timed out.</value>
</data>
<data name="net_proxyschemenotsupported" xml:space="preserve">
<value>The ServicePointManager does not support proxies with the {0} scheme.</value>
</data>
<data name="net_baddate" xml:space="preserve">
<value>The value of the date string in the header is invalid.</value>
</data>
@@ -228,9 +154,6 @@
<data name="net_WebHeaderInvalidHeaderChars" xml:space="preserve">
<value>Specified value has invalid HTTP Header characters.</value>
</data>
<data name="net_WebHeaderInvalidNonAsciiChars" xml:space="preserve">
<value>Specified value has invalid non-ASCII characters.</value>
</data>
<data name="net_timeout" xml:space="preserve">
<value>The operation has timed out.</value>
</data>
@@ -244,7 +167,7 @@
<value>The server returned a status code outside the valid range of 100-599.</value>
</data>
<data name="net_io_timeout_use_gt_zero" xml:space="preserve">
<value>Timeout can be only be set to 'System.Threading.Timeout.Infinite' or a value > 0.</value>
<value>Timeout can be only be set to 'System.Threading.Timeout.Infinite' or a value &gt; 0.</value>
</data>
<data name="net_ftp_servererror" xml:space="preserve">
<value>The remote server returned an error: {0}.</value>

View File

@@ -6,20 +6,20 @@
<RootNamespace>System.Net.Requests</RootNamespace>
<AssemblyName>System.Net.Requests</AssemblyName>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<IsPartialFacadeAssembly Condition="'$(TargetGroup)' == 'net463'">true</IsPartialFacadeAssembly>
<ResourcesSourceOutputDirectory Condition="'$(TargetGroup)' == 'net463'">None</ResourcesSourceOutputDirectory>
<!-- Disable binplacing for now since we need to use the uapaot version of this assembly -->
<BinPlaceILCInputFolder>false</BinPlaceILCInputFolder>
</PropertyGroup>
<!-- Help VS understand available configurations -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Unix-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Unix-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp-Windows_NT-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='net463-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='net463-Windows_NT-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Unix-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Unix-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcoreapp-Windows_NT-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uap-Windows_NT-Release|AnyCPU'" />
<ItemGroup>
<Compile Include="FxCopBaseline.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetGroup)' == 'netcoreapp'">
<ItemGroup>
<Compile Include="System\Net\AuthenticationManager.cs" />
<Compile Include="System\Net\Authorization.cs" />
<Compile Include="System\Net\FileWebRequest.cs" />
@@ -98,7 +98,7 @@
<Link>Common\System\Threading\Tasks\TaskToApm.cs</Link>
</Compile>
</ItemGroup>
<ItemGroup Condition=" '$(TargetsWindows)' == 'true' And '$(TargetGroup)' == 'netcoreapp'">
<ItemGroup Condition=" '$(TargetsWindows)' == 'true'">
<Compile Include="$(CommonPath)\Interop\Windows\wininet\Interop.wininet_errors.cs">
<Link>Common\Interop\Windows\wininet\Interop.wininet_errors.cs</Link>
</Compile>
@@ -116,10 +116,6 @@
</Compile>
<Compile Include="System\Net\WebExceptionPal.Unix.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetGroup)' == 'net463'">
<TargetingPackReference Include="mscorlib" />
<TargetingPackReference Include="System" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.Win32.Primitives" />
<Reference Include="System.Collections" />

View File

@@ -331,7 +331,7 @@ namespace System.Net
PipelineInstruction result = QueueOrCreateDataConection(entry, response, timeout, ref stream, out isSocketReady);
if (!isSocketReady)
return result;
// otheriwse we have a stream to create
// otherwise we have a stream to create
}
//
// This is part of the above case and it's all about giving data stream back
@@ -1217,7 +1217,7 @@ namespace System.Net
if (responseString.Length > lineStart + 4)
{
// If the first three characters of the the response line currently being examined
// If the first three characters of the response line currently being examined
// match the status code, then if they are followed by a space, then we
// have reached the end of the reply.
if (responseString.Substring(lineStart, 3) == response.StatusCodeString)

View File

@@ -4,6 +4,7 @@
using System.IO;
using System.Net.Sockets;
using System.Runtime.ExceptionServices;
namespace System.Net
{
@@ -255,8 +256,10 @@ namespace System.Net
{
object result = ((LazyAsyncResult)ar).InternalWaitForCompletion();
if (result is Exception)
throw (Exception)result;
if (result is Exception e)
{
ExceptionDispatchInfo.Capture(e).Throw();
}
return (int)result;
}

View File

@@ -8,8 +8,10 @@ using System.IO;
using System.Net.Cache;
using System.Net.Sockets;
using System.Security;
using System.Runtime.ExceptionServices;
using System.Security.Authentication;
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Threading.Tasks;
namespace System.Net
@@ -1231,7 +1233,7 @@ namespace System.Net
{
if (_exception != null)
{
throw _exception;
ExceptionDispatchInfo.Capture(_exception).Throw();
}
}
@@ -1643,17 +1645,7 @@ namespace System.Net
{
get
{
if (_clientCertificates == null)
{
lock (_syncObject)
{
if (_clientCertificates == null)
{
_clientCertificates = new X509CertificateCollection();
}
}
}
return _clientCertificates;
return LazyInitializer.EnsureInitialized(ref _clientCertificates, ref _syncObject, () => new X509CertificateCollection());
}
set
{

View File

@@ -17,9 +17,9 @@ namespace System.Net
// Unfortunately, this property is not exposed in .NET Core, so it can't be changed
// This will result in inefficient memory usage when sending (POST'ing) large
// amounts of data to the server such as from a file stream.
internal class RequestStream : Stream
internal sealed class RequestStream : Stream
{
private MemoryStream _buffer = new MemoryStream();
private readonly MemoryStream _buffer = new MemoryStream();
public RequestStream()
{
@@ -107,6 +107,16 @@ namespace System.Net
return _buffer.WriteAsync(buffer, offset, count, cancellationToken);
}
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState)
{
return _buffer.BeginWrite(buffer, offset, count, asyncCallback, asyncState);
}
public override void EndWrite(IAsyncResult asyncResult)
{
_buffer.EndWrite(asyncResult);
}
public ArraySegment<byte> GetBuffer()
{
ArraySegment<byte> bytes;

View File

@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System;
using System.Threading;
namespace System.Net
{
@@ -29,22 +30,7 @@ namespace System.Net
{
}
public static IWebProxy Get()
{
if (!s_systemWebProxyInitialized)
{
lock (s_lockObject)
{
if (!s_systemWebProxyInitialized)
{
s_systemWebProxy = new SystemWebProxy();
s_systemWebProxyInitialized = true;
}
}
}
return s_systemWebProxy;
}
public static IWebProxy Get() => LazyInitializer.EnsureInitialized(ref s_systemWebProxy, ref s_systemWebProxyInitialized, ref s_lockObject, () => new SystemWebProxy());
public ICredentials Credentials
{

View File

@@ -4,8 +4,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Threading;
@@ -31,21 +29,12 @@ namespace System.Net
/// <summary>
/// <para>The duration in milliseconds of timers in this queue.</para>
/// </summary>
internal int Duration
{
get
{
return _durationMilliseconds;
}
}
internal int Duration => _durationMilliseconds;
/// <summary>
/// <para>Creates and returns a handle to a new polled timer.</para>
/// </summary>
internal Timer CreateTimer()
{
return CreateTimer(null, null);
}
internal Timer CreateTimer() => CreateTimer(null, null);
/// <summary>
/// <para>Creates and returns a handle to a new timer with attached context.</para>
@@ -70,35 +59,17 @@ namespace System.Net
/// <summary>
/// <para>The duration in milliseconds of timer.</para>
/// </summary>
internal int Duration
{
get
{
return _durationMilliseconds;
}
}
internal int Duration => _durationMilliseconds;
/// <summary>
/// <para>The time (relative to Environment.TickCount) when the timer started.</para>
/// </summary>
internal int StartTime
{
get
{
return _startTimeMilliseconds;
}
}
internal int StartTime => _startTimeMilliseconds;
/// <summary>
/// <para>The time (relative to Environment.TickCount) when the timer will expire.</para>
/// </summary>
internal int Expiration
{
get
{
return unchecked(_startTimeMilliseconds + _durationMilliseconds);
}
}
internal int Expiration => unchecked(_startTimeMilliseconds + _durationMilliseconds);
/// <summary>
/// <para>The amount of time left on the timer. 0 means it has fired. 1 means it has expired but
@@ -135,10 +106,7 @@ namespace System.Net
/// </summary>
internal abstract bool HasExpired { get; }
public void Dispose()
{
Cancel();
}
public void Dispose() => Cancel();
}
/// <summary>
@@ -146,23 +114,18 @@ namespace System.Net
/// </summary>
internal delegate void Callback(Timer timer, int timeNoticed, object context);
private const int c_ThreadIdleTimeoutMilliseconds = 30 * 1000;
private const int c_CacheScanPerIterations = 32;
private const int c_TickCountResolution = 15;
private const int ThreadIdleTimeoutMilliseconds = 30 * 1000;
private const int CacheScanPerIterations = 32;
private const int TickCountResolution = 15;
private static LinkedList<WeakReference> s_Queues = new LinkedList<WeakReference>();
private static LinkedList<WeakReference> s_NewQueues = new LinkedList<WeakReference>();
private static int s_ThreadState = (int)TimerThreadState.Idle; // Really a TimerThreadState, but need an int for Interlocked.
private static AutoResetEvent s_ThreadReadyEvent = new AutoResetEvent(false);
private static ManualResetEvent s_ThreadShutdownEvent = new ManualResetEvent(false);
private static WaitHandle[] s_ThreadEvents;
private static int s_CacheScanIteration;
private static Hashtable s_QueuesCache = new Hashtable();
static TimerThread()
{
s_ThreadEvents = new WaitHandle[] { s_ThreadShutdownEvent, s_ThreadReadyEvent };
}
private static readonly LinkedList<WeakReference> s_queues = new LinkedList<WeakReference>();
private static readonly LinkedList<WeakReference> s_newQueues = new LinkedList<WeakReference>();
private static int s_threadState = (int)TimerThreadState.Idle; // Really a TimerThreadState, but need an int for Interlocked.
private static readonly AutoResetEvent s_threadReadyEvent = new AutoResetEvent(false);
private static readonly ManualResetEvent s_threadShutdownEvent = new ManualResetEvent(false);
private static readonly WaitHandle[] s_threadEvents = { s_threadShutdownEvent, s_threadReadyEvent };
private static int s_cacheScanIteration;
private static readonly Hashtable s_queuesCache = new Hashtable();
/// <summary>
/// <para>The possible states of the timer thread.</para>
@@ -190,33 +153,37 @@ namespace System.Net
}
TimerQueue queue;
WeakReference weakQueue = (WeakReference)s_QueuesCache[durationMilliseconds];
object key = durationMilliseconds; // Box once.
WeakReference weakQueue = (WeakReference)s_queuesCache[key];
if (weakQueue == null || (queue = (TimerQueue)weakQueue.Target) == null)
{
lock (s_NewQueues)
lock (s_newQueues)
{
weakQueue = (WeakReference)s_QueuesCache[durationMilliseconds];
weakQueue = (WeakReference)s_queuesCache[key];
if (weakQueue == null || (queue = (TimerQueue)weakQueue.Target) == null)
{
queue = new TimerQueue(durationMilliseconds);
weakQueue = new WeakReference(queue);
s_NewQueues.AddLast(weakQueue);
s_QueuesCache[durationMilliseconds] = weakQueue;
s_newQueues.AddLast(weakQueue);
s_queuesCache[key] = weakQueue;
// Take advantage of this lock to periodically scan the table for garbage.
if (++s_CacheScanIteration % c_CacheScanPerIterations == 0)
if (++s_cacheScanIteration % CacheScanPerIterations == 0)
{
List<int> garbage = new List<int>();
foreach (DictionaryEntry pair in s_QueuesCache)
var garbage = new List<object>();
// Manual use of IDictionaryEnumerator instead of foreach to avoid DictionaryEntry box allocations.
IDictionaryEnumerator e = s_queuesCache.GetEnumerator();
while (e.MoveNext())
{
DictionaryEntry pair = e.Entry;
if (((WeakReference)pair.Value).Target == null)
{
garbage.Add((int)pair.Key);
garbage.Add(pair.Key);
}
}
for (int i = 0; i < garbage.Count; i++)
{
s_QueuesCache.Remove(garbage[i]);
s_queuesCache.Remove(garbage[i]);
}
}
}
@@ -347,10 +314,7 @@ namespace System.Net
/// <summary>
/// <para>Always returns a dummy infinite timer.</para>
/// </summary>
internal override Timer CreateTimer(Callback callback, object context)
{
return new InfiniteTimer();
}
internal override Timer CreateTimer(Callback callback, object context) => new InfiniteTimer();
}
/// <summary>
@@ -394,38 +358,18 @@ namespace System.Net
_timerState = TimerState.Sentinel;
}
internal override bool HasExpired
{
get
{
return _timerState == TimerState.Fired;
}
}
internal override bool HasExpired => _timerState == TimerState.Fired;
internal TimerNode Next
{
get
{
return _next;
}
set
{
_next = value;
}
get { return _next; }
set { _next = value; }
}
internal TimerNode Prev
{
get
{
return _prev;
}
set
{
_prev = value;
}
get { return _prev; }
set { _prev = value; }
}
/// <summary>
@@ -544,21 +488,12 @@ namespace System.Net
private int _cancelled;
internal override bool HasExpired
{
get
{
return false;
}
}
internal override bool HasExpired => false;
/// <summary>
/// <para>Cancels the timer. Returns true the first time, false after that.</para>
/// </summary>
internal override bool Cancel()
{
return Interlocked.Exchange(ref _cancelled, 1) == 0;
}
internal override bool Cancel() => Interlocked.Exchange(ref _cancelled, 1) == 0;
}
/// <summary>
@@ -566,9 +501,9 @@ namespace System.Net
/// </summary>
private static void Prod()
{
s_ThreadReadyEvent.Set();
s_threadReadyEvent.Set();
TimerThreadState oldState = (TimerThreadState)Interlocked.CompareExchange(
ref s_ThreadState,
ref s_threadState,
(int)TimerThreadState.Running,
(int)TimerThreadState.Idle);
@@ -594,10 +529,10 @@ namespace System.Net
Thread.CurrentThread.IsBackground = true;
// Keep a permanent lock on s_Queues. This lets for example Shutdown() know when this thread isn't running.
lock (s_Queues)
lock (s_queues)
{
// If shutdown was recently called, abort here.
if (Interlocked.CompareExchange(ref s_ThreadState, (int)TimerThreadState.Running, (int)TimerThreadState.Running) !=
if (Interlocked.CompareExchange(ref s_threadState, (int)TimerThreadState.Running, (int)TimerThreadState.Running) !=
(int)TimerThreadState.Running)
{
return;
@@ -608,19 +543,19 @@ namespace System.Net
{
try
{
s_ThreadReadyEvent.Reset();
s_threadReadyEvent.Reset();
while (true)
{
// Copy all the new queues to the real queues. Since only this thread modifies the real queues, it doesn't have to lock it.
if (s_NewQueues.Count > 0)
if (s_newQueues.Count > 0)
{
lock (s_NewQueues)
lock (s_newQueues)
{
for (LinkedListNode<WeakReference> node = s_NewQueues.First; node != null; node = s_NewQueues.First)
for (LinkedListNode<WeakReference> node = s_newQueues.First; node != null; node = s_newQueues.First)
{
s_NewQueues.Remove(node);
s_Queues.AddLast(node);
s_newQueues.Remove(node);
s_queues.AddLast(node);
}
}
}
@@ -628,13 +563,13 @@ namespace System.Net
int now = Environment.TickCount;
int nextTick = 0;
bool haveNextTick = false;
for (LinkedListNode<WeakReference> node = s_Queues.First; node != null; /* node = node.Next must be done in the body */)
for (LinkedListNode<WeakReference> node = s_queues.First; node != null; /* node = node.Next must be done in the body */)
{
TimerQueue queue = (TimerQueue)node.Value.Target;
if (queue == null)
{
LinkedListNode<WeakReference> next = node.Next;
s_Queues.Remove(node);
s_queues.Remove(node);
node = next;
continue;
}
@@ -657,13 +592,13 @@ namespace System.Net
int newNow = Environment.TickCount;
int waitDuration = haveNextTick ?
(int)(IsTickBetween(now, nextTick, newNow) ?
Math.Min(unchecked((uint)(nextTick - newNow)), (uint)(Int32.MaxValue - c_TickCountResolution)) + c_TickCountResolution :
Math.Min(unchecked((uint)(nextTick - newNow)), (uint)(Int32.MaxValue - TickCountResolution)) + TickCountResolution :
0) :
c_ThreadIdleTimeoutMilliseconds;
ThreadIdleTimeoutMilliseconds;
if (NetEventSource.IsEnabled) NetEventSource.Info(null, $"Waiting for {waitDuration}ms");
int waitResult = WaitHandle.WaitAny(s_ThreadEvents, waitDuration, false);
int waitResult = WaitHandle.WaitAny(s_threadEvents, waitDuration, false);
// 0 is s_ThreadShutdownEvent - die.
if (waitResult == 0)
@@ -678,11 +613,11 @@ namespace System.Net
// If we timed out with nothing to do, shut down.
if (waitResult == WaitHandle.WaitTimeout && !haveNextTick)
{
Interlocked.CompareExchange(ref s_ThreadState, (int)TimerThreadState.Idle, (int)TimerThreadState.Running);
Interlocked.CompareExchange(ref s_threadState, (int)TimerThreadState.Idle, (int)TimerThreadState.Running);
// There could have been one more prod between the wait and the exchange. Check, and abort if necessary.
if (s_ThreadReadyEvent.WaitOne(0, false))
if (s_threadReadyEvent.WaitOne(0, false))
{
if (Interlocked.CompareExchange(ref s_ThreadState, (int)TimerThreadState.Running, (int)TimerThreadState.Idle) ==
if (Interlocked.CompareExchange(ref s_threadState, (int)TimerThreadState.Running, (int)TimerThreadState.Idle) ==
(int)TimerThreadState.Idle)
{
continue;

View File

@@ -9,6 +9,7 @@ using System.Net.Cache;
using System.Net.Security;
using System.Runtime.Serialization;
using System.Security.Principal;
using System.Threading;
using System.Threading.Tasks;
namespace System.Net
{
@@ -27,8 +28,8 @@ namespace System.Net
}
}
private static volatile List<WebRequestPrefixElement> s_prefixList;
private static readonly object s_internalSyncObject = new object();
private static List<WebRequestPrefixElement> s_prefixList;
private static object s_internalSyncObject = new object();
internal const int DefaultTimeoutMilliseconds = 100 * 1000;
@@ -353,36 +354,28 @@ namespace System.Net
// GetConfig() might use us, so we have a circular dependency issue
// that causes us to nest here. We grab the lock only if we haven't
// initialized.
if (s_prefixList == null)
return LazyInitializer.EnsureInitialized(ref s_prefixList, ref s_internalSyncObject, () =>
{
lock (s_internalSyncObject)
var httpRequestCreator = new HttpRequestCreator();
var ftpRequestCreator = new FtpWebRequestCreator();
var fileRequestCreator = new FileWebRequestCreator();
const int Count = 4;
var prefixList = new List<WebRequestPrefixElement>(Count)
{
if (s_prefixList == null)
{
var httpRequestCreator = new HttpRequestCreator();
var ftpRequestCreator = new FtpWebRequestCreator();
var fileRequestCreator = new FileWebRequestCreator();
new WebRequestPrefixElement("http:", httpRequestCreator),
new WebRequestPrefixElement("https:", httpRequestCreator),
new WebRequestPrefixElement("ftp:", ftpRequestCreator),
new WebRequestPrefixElement("file:", fileRequestCreator),
};
Debug.Assert(prefixList.Count == Count, $"Expected {Count}, got {prefixList.Count}");
const int Count = 4;
var prefixList = new List<WebRequestPrefixElement>(Count)
{
new WebRequestPrefixElement("http:", httpRequestCreator),
new WebRequestPrefixElement("https:", httpRequestCreator),
new WebRequestPrefixElement("ftp:", ftpRequestCreator),
new WebRequestPrefixElement("file:", fileRequestCreator),
};
Debug.Assert(prefixList.Count == Count, $"Expected {Count}, got {prefixList.Count}");
s_prefixList = prefixList;
}
}
}
return s_prefixList;
return prefixList;
});
}
set
{
s_prefixList = value;
Volatile.Write(ref s_prefixList, value);
}
}
@@ -568,24 +561,13 @@ namespace System.Net
{
get
{
lock (s_internalSyncObject)
{
if (!s_DefaultWebProxyInitialized)
{
s_DefaultWebProxy = SystemWebProxy.Get();
s_DefaultWebProxyInitialized = true;
}
return s_DefaultWebProxy;
}
return LazyInitializer.EnsureInitialized(ref s_DefaultWebProxy, ref s_DefaultWebProxyInitialized, ref s_internalSyncObject, () => SystemWebProxy.Get());
}
set
{
lock (s_internalSyncObject)
{
s_DefaultWebProxy = value;
s_DefaultWebProxyInitialized = true;
}
}
}

View File

@@ -2,7 +2,6 @@
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
netstandard1.3;
netstandard;
</BuildConfigurations>
</PropertyGroup>

View File

@@ -1,47 +0,0 @@
// 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.Runtime.Serialization.Formatters.Tests;
using System.Net.Test.Common;
using Xunit;
namespace System.Net.HttpRequest.Tests
{
using Configuration = System.Net.Test.Common.Configuration;
public partial class HttpRequestResponseSerializationTest
{
[ActiveIssue(14068)]
[OuterLoop]
[Fact]
public void SerializeDeserialize_Roundtrips()
{
HttpWebRequest request = WebRequest.CreateHttp(Configuration.Http.RemoteEchoServer);
request.KeepAlive = true;
request.CookieContainer = new CookieContainer(10);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (HttpWebResponse responseClone = BinaryFormatterHelpers.Clone(response))
{
Assert.NotSame(responseClone, response);
Assert.Equal(response.CharacterSet, responseClone.CharacterSet);
Assert.Equal(response.ContentEncoding, responseClone.ContentEncoding);
Assert.Equal(response.ContentLength, responseClone.ContentLength);
Assert.Equal(response.ContentType, responseClone.ContentType);
Assert.Equal(response.Cookies.Count, responseClone.Cookies.Count);
Assert.Equal(response.Headers.Count, responseClone.Headers.Count);
Assert.Equal(response.IsFromCache, responseClone.IsFromCache);
Assert.Equal(response.IsMutuallyAuthenticated, responseClone.IsMutuallyAuthenticated);
Assert.Equal(response.LastModified, responseClone.LastModified);
Assert.Equal(response.Method, responseClone.Method);
Assert.Equal(response.ProtocolVersion, responseClone.ProtocolVersion);
Assert.Equal(response.ResponseUri, responseClone.ResponseUri);
Assert.Equal(response.Server, responseClone.Server);
Assert.Equal(response.StatusCode, responseClone.StatusCode);
Assert.Equal(response.StatusDescription, responseClone.StatusDescription);
Assert.Equal(response.SupportsHeaders, responseClone.SupportsHeaders);
}
}
}
}

View File

@@ -38,7 +38,8 @@ namespace System.Net.Tests
}
[OuterLoop]
[Theory, MemberData(nameof(EchoServers))]
[ConditionalTheory(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotFedoraOrRedHatOrCentos))] // #16201
[MemberData(nameof(EchoServers))]
public WebResponse GetResponse_UseDefaultCredentials_ExpectSuccess(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -176,7 +177,7 @@ namespace System.Net.Tests
sw.Stop();
Assert.InRange(sw.ElapsedMilliseconds, 1, 10 * 1000); // Allow a very wide range.
Assert.InRange(sw.ElapsedMilliseconds, 1, 60 * 1000); // Allow a very wide range as this has taken over 10 seconds occasionally
Assert.Equal(WebExceptionStatus.Timeout, exception.Status);
Assert.Equal(null, exception.InnerException);
Assert.Equal(null, exception.Response);
@@ -192,6 +193,7 @@ namespace System.Net.Tests
}
[Fact]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hangs in desktop.
public void HttpWebRequest_PreAuthenticateGetSet_Ok()
{
HttpWebRequest request = WebRequest.CreateHttp(Configuration.Http.RemoteEchoServer);

View File

@@ -111,7 +111,6 @@ namespace System.Net.Tests
Assert.True(request.AllowReadStreamBuffering);
}
[ActiveIssue(12637)]
[Theory, MemberData(nameof(EchoServers))]
public async Task ContentLength_Get_ExpectSameAsGetResponseStream(Uri remoteServer)
{
@@ -243,6 +242,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public void BeginGetRequestStream_CreatePostRequestThenCallTwice_ThrowsInvalidOperationException(Uri remoteServer)
{
_savedHttpWebRequest = HttpWebRequest.CreateHttp(remoteServer);
@@ -256,6 +256,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public void BeginGetRequestStream_CreateRequestThenBeginGetResponsePrior_ThrowsInvalidOperationException(Uri remoteServer)
{
_savedHttpWebRequest = HttpWebRequest.CreateHttp(remoteServer);
@@ -268,6 +269,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public void BeginGetResponse_CreateRequestThenCallTwice_ThrowsInvalidOperationException(Uri remoteServer)
{
_savedHttpWebRequest = HttpWebRequest.CreateHttp(remoteServer);
@@ -280,6 +282,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public void BeginGetResponse_CreatePostRequestThenAbort_ThrowsWebException(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -290,6 +293,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public async Task GetRequestStreamAsync_WriteAndDisposeRequestStreamThenOpenRequestStream_ThrowsArgumentException(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -306,6 +310,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public async Task GetRequestStreamAsync_SetPOSTThenGet_ExpectNotNull(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -315,6 +320,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public async Task GetResponseAsync_GetResponseStream_ExpectNotNull(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -357,7 +363,9 @@ namespace System.Net.Tests
Assert.True(strContent.Contains(RequestBody));
}
[Theory, MemberData(nameof(EchoServers))]
[ConditionalTheory(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotFedoraOrRedHatOrCentos))] // #16201
[MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public async Task GetResponseAsync_UseDefaultCredentials_ExpectSuccess(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -381,7 +389,6 @@ namespace System.Net.Tests
new object[] { System.Net.Test.Common.Configuration.Http.StatusCodeUri(true, 404) },
};
[ActiveIssue(12236, TestPlatforms.Linux)]
[Theory, MemberData(nameof(StatusCodeServers))]
public async Task GetResponseAsync_ResourceNotFound_ThrowsWebException(Uri remoteServer)
{
@@ -393,6 +400,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public async Task HaveResponse_GetResponseAsync_ExpectTrue(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -400,7 +408,9 @@ namespace System.Net.Tests
Assert.True(request.HaveResponse);
}
[Theory, MemberData(nameof(EchoServers))]
[ConditionalTheory(nameof(PlatformDetection) + "." + nameof(PlatformDetection.IsNotFedoraOrRedHatOrCentos))] // #16201
[MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public async Task Headers_GetResponseHeaders_ContainsExpectedValue(Uri remoteServer)
{
HttpWebRequest request = WebRequest.CreateHttp(remoteServer);
@@ -456,6 +466,7 @@ namespace System.Net.Tests
}
[Theory, MemberData(nameof(EchoServers))]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public async Task SimpleScenario_UseGETVerb_Success(Uri remoteServer)
{
HttpWebRequest request = HttpWebRequest.CreateHttp(remoteServer);

View File

@@ -15,9 +15,7 @@ namespace System.Net.Tests
[Theory]
[InlineData("text/html")]
[InlineData("text/html; charset=utf-8")]
#if netstandard17 // Depends on a bug fix made for 1.1 release. Can be un-ifdef'd once an updated package is available on NuGet
[InlineData("TypeAndNoSubType")]
#endif
public async Task ContentType_ServerResponseHasContentTypeHeader_ContentTypeReceivedCorrectly(string expectedContentType)
{
await LoopbackServer.CreateServerAsync(async (server, url) =>

View File

@@ -10,6 +10,7 @@ namespace System.Net.Tests
public class LoggingTest
{
[Fact]
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "NetEventSource is only part of .NET Core")]
public void EventSource_ExistsWithCorrectId()
{
Type esType = typeof(WebRequest).Assembly.GetType("System.Net.NetEventSource", throwOnError: true, ignoreCase: false);

View File

@@ -11,6 +11,7 @@ using Xunit;
namespace System.Net.Tests
{
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "dotnet/corefx #16928")] //Test hang forever in desktop.
public class RequestStreamTest
{
readonly byte[] buffer = new byte[1];

Some files were not shown because too many files have changed in this diff Show More