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,87 +1,58 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{527D1780-0895-4D4F-B54F-257DB1BAC218}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Private.Uri.ExtendedFunctional.Tests", "tests\ExtendedFunctionalTests\System.Private.Uri.ExtendedFunctional.Tests.csproj", "{0febe054-68ac-446f-b999-9068736d3cec}"
ProjectSection(ProjectDependencies) = postProject
{4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {4AC5343E-6E31-4BA5-A795-0493AE7E9008}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{7E12B1D3-7BF1-4E8D-88DD-08218578C095}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Private.Uri.Functional.Tests", "tests\FunctionalTests\System.Private.Uri.Functional.Tests.csproj", "{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}"
ProjectSection(ProjectDependencies) = postProject
{4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {4AC5343E-6E31-4BA5-A795-0493AE7E9008}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Private.Uri.Unit.Tests", "tests\UnitTests\System.Private.Uri.Unit.Tests.csproj", "{96AF3242-A368-4F13-B006-A722CC3B8517}"
ProjectSection(ProjectDependencies) = postProject
{4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {4AC5343E-6E31-4BA5-A795-0493AE7E9008}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Private.Uri", "src\System.Private.Uri.csproj", "{4AC5343E-6E31-4BA5-A795-0493AE7E9008}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UnitTests", "UnitTests", "{461120FF-E1FB-41E3-9B70-20EE316B45CA}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{1A2F9F4A-A032-433E-B914-ADD5992BB178}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FunctionalTests", "FunctionalTests", "{F4685A63-70C7-447C-A5E6-BAA26766A8B9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Private.Uri.Tests", "tests\FunctionalTests\System.Private.Uri.Functional.Tests.csproj", "{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Private.Uri.Unit.Tests", "tests\UnitTests\System.Private.Uri.Unit.Tests.csproj", "{0D174EA9-9E61-4519-8D31-7BD2331A1982}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E107E9C1-E893-4E87-987E-04EF0DCEAEFD}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
Unix_Debug|Any CPU = Unix_Debug|Any CPU
Unix_Release|Any CPU = Unix_Release|Any CPU
Windows_Debug|Any CPU = Windows_Debug|Any CPU
Windows_Release|Any CPU = Windows_Release|Any CPU
Windows_uap101aot_Debug|Any CPU = Windows_uap101aot_Debug|Any CPU
Windows_uap101aot_Release|Any CPU = Windows_uap101aot_Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Unix_Debug|Any CPU.ActiveCfg = Unix_Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Unix_Debug|Any CPU.Build.0 = Unix_Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Unix_Release|Any CPU.ActiveCfg = Unix_Release|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Unix_Release|Any CPU.Build.0 = Unix_Release|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_Debug|Any CPU.ActiveCfg = Windows_Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_Debug|Any CPU.Build.0 = Windows_Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_uap101aot_Debug|Any CPU.ActiveCfg = Windows_uap101aot_Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_uap101aot_Debug|Any CPU.Build.0 = Windows_uap101aot_Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_uap101aot_Release|Any CPU.ActiveCfg = Windows_uap101aot_Release|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_uap101aot_Release|Any CPU.Build.0 = Windows_uap101aot_Release|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_Release|Any CPU.ActiveCfg = Windows_Release|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Windows_Release|Any CPU.Build.0 = Windows_Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.Build.0 = Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Unix_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Unix_Debug|Any CPU.Build.0 = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Unix_Release|Any CPU.ActiveCfg = Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Unix_Release|Any CPU.Build.0 = Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_Debug|Any CPU.Build.0 = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_uap101aot_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_uap101aot_Debug|Any CPU.Build.0 = Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_uap101aot_Release|Any CPU.ActiveCfg = Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_uap101aot_Release|Any CPU.Build.0 = Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_Release|Any CPU.ActiveCfg = Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Windows_Release|Any CPU.Build.0 = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Release|Any CPU.Build.0 = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Unix_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Unix_Debug|Any CPU.Build.0 = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Unix_Release|Any CPU.ActiveCfg = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Unix_Release|Any CPU.Build.0 = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_Debug|Any CPU.Build.0 = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_uap101aot_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_uap101aot_Debug|Any CPU.Build.0 = Debug|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_uap101aot_Release|Any CPU.ActiveCfg = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_uap101aot_Release|Any CPU.Build.0 = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_Release|Any CPU.ActiveCfg = Release|Any CPU
{0D174EA9-9E61-4519-8D31-7BD2331A1982}.Windows_Release|Any CPU.Build.0 = Release|Any CPU
{0febe054-68ac-446f-b999-9068736d3cec}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU
{0febe054-68ac-446f-b999-9068736d3cec}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU
{0febe054-68ac-446f-b999-9068736d3cec}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU
{0febe054-68ac-446f-b999-9068736d3cec}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU
{96AF3242-A368-4F13-B006-A722CC3B8517}.Debug|Any CPU.ActiveCfg = netstandard-Debug|Any CPU
{96AF3242-A368-4F13-B006-A722CC3B8517}.Debug|Any CPU.Build.0 = netstandard-Debug|Any CPU
{96AF3242-A368-4F13-B006-A722CC3B8517}.Release|Any CPU.ActiveCfg = netstandard-Release|Any CPU
{96AF3242-A368-4F13-B006-A722CC3B8517}.Release|Any CPU.Build.0 = netstandard-Release|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Debug|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Debug|Any CPU.Build.0 = netcoreapp-Windows_NT-Debug|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Release|Any CPU.ActiveCfg = netcoreapp-Windows_NT-Release|Any CPU
{4AC5343E-6E31-4BA5-A795-0493AE7E9008}.Release|Any CPU.Build.0 = netcoreapp-Windows_NT-Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {527D1780-0895-4D4F-B54F-257DB1BAC218}
{461120FF-E1FB-41E3-9B70-20EE316B45CA} = {7E12B1D3-7BF1-4E8D-88DD-08218578C095}
{F4685A63-70C7-447C-A5E6-BAA26766A8B9} = {7E12B1D3-7BF1-4E8D-88DD-08218578C095}
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C} = {F4685A63-70C7-447C-A5E6-BAA26766A8B9}
{0D174EA9-9E61-4519-8D31-7BD2331A1982} = {461120FF-E1FB-41E3-9B70-20EE316B45CA}
{0febe054-68ac-446f-b999-9068736d3cec} = {1A2F9F4A-A032-433E-B914-ADD5992BB178}
{B0FFC4A8-BAC3-4A7F-8FD5-5B680209371C} = {1A2F9F4A-A032-433E-B914-ADD5992BB178}
{96AF3242-A368-4F13-B006-A722CC3B8517} = {1A2F9F4A-A032-433E-B914-ADD5992BB178}
{4AC5343E-6E31-4BA5-A795-0493AE7E9008} = {E107E9C1-E893-4E87-987E-04EF0DCEAEFD}
EndGlobalSection
EndGlobal

View File

@@ -4,5 +4,7 @@
<PropertyGroup>
<AssemblyVersion>4.0.4.0</AssemblyVersion>
<IsNETCoreApp>true</IsNETCoreApp>
<IsUAP>true</IsUAP>
<IsUAPRef>false</IsUAPRef>
</PropertyGroup>
</Project>

View File

@@ -2,11 +2,10 @@
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
uap101aot-Windows_NT;
netstandard1.0-Unix;
netstandard1.0-Windows_NT;
netcoreapp1.2corert-Unix;
netcoreapp1.2corert-Windows_NT;
uapaot-Windows_NT;
netcoreapp-Unix;
netcoreapp-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">
@@ -129,30 +70,9 @@
<data name="Argument_AddingDuplicate" xml:space="preserve">
<value>An item with the same key has already been added. Key: {0}</value>
</data>
<data name="Argument_IdnBadLabelSize" xml:space="preserve">
<value>IDN labels must be between 1 and 63 characters long.</value>
</data>
<data name="Argument_IdnBadPunycode" xml:space="preserve">
<value>Invalid IDN encoded string.</value>
</data>
<data name="Argument_IdnIllegalName" xml:space="preserve">
<value>Decoded string is not a valid IDN name.</value>
</data>
<data name="Argument_InvalidCharSequence" xml:space="preserve">
<value>Invalid Unicode code point found at index {0}.</value>
</data>
<data name="Argument_InvalidCharSequenceNoIndex" xml:space="preserve">
<value>String contains invalid Unicode code points.</value>
</data>
<data name="Argument_InvalidNormalizationForm" xml:space="preserve">
<value>Invalid normalization form.</value>
</data>
<data name="Arg_OutOfMemoryException" xml:space="preserve">
<value>Insufficient memory to continue the execution of the program.</value>
</data>
<data name="UnknownError_Num" xml:space="preserve">
<value>Unknown error '{0}'.</value>
</data>
<data name="net_uri_BadAuthority" xml:space="preserve">
<value>Invalid URI: The Authority/Host could not be parsed.</value>
</data>
@@ -216,12 +136,6 @@
<data name="net_uri_BadUnicodeHostForIdn" xml:space="preserve">
<value>An invalid Unicode character by IDN standards was specified in the host.</value>
</data>
<data name="AssertionFailed" xml:space="preserve">
<value>Assertion failed.</value>
</data>
<data name="Debug_Fail" xml:space="preserve">
<value>Fail: {0}</value>
</data>
<data name="DebugAssertBanner" xml:space="preserve">
<value>---- DEBUG ASSERTION FAILED ----</value>
</data>

View File

@@ -1,28 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<?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>{4AC5343E-6E31-4BA5-A795-0493AE7E9008}</ProjectGuid>
<AssemblyName>System.Private.Uri</AssemblyName>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<!-- Suppress warnings for type conflicts between SafeFileHandle in partial facade and mscorlib -->
<NoWarn>0436</NoWarn>
<SkipCommonResourcesIncludes Condition="'$(TargetGroup)'=='uap101aot' or '$(TargetGroup)' == 'netcoreapp1.2corert'">true</SkipCommonResourcesIncludes>
<DefineConstants Condition="'$(TargetGroup)'=='netstandard1.0'">$(DefineConstants);netstandard10</DefineConstants>
</PropertyGroup>
<!-- Default configurations to help VS understand the configurations -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='uap101aot-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='uap101aot-Windows_NT-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netstandard1.0-Unix-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netstandard1.0-Unix-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netstandard1.0-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netstandard1.0-Windows_NT-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp1.2corert-Unix-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp1.2corert-Unix-Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp1.2corert-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='netcoreapp1.2corert-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'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uapaot-Windows_NT-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'uapaot-Windows_NT-Release|AnyCPU'" />
<ItemGroup>
<Compile Include="$(CommonPath)\System\Diagnostics\Debug.cs" Condition="'$(TargetGroup)'!='uap101aot' and '$(TargetGroup)' != 'netcoreapp1.2corert'">
<Compile Include="$(CommonPath)\System\Diagnostics\Debug.cs" Condition="'$(TargetGroup)'!='uapaot'">
<Link>Common\System\Diagnostics\Debug.cs</Link>
</Compile>
<Compile Include="$(CommonPath)\System\Collections\Generic\ArrayBuilder.cs">
@@ -54,7 +48,7 @@
<Compile Include="System\UriScheme.cs" />
<Compile Include="System\UriSyntax.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetsWindows)' == 'true' and '$(TargetGroup)'=='netstandard1.0'">
<ItemGroup Condition="'$(TargetsWindows)' == 'true' and ('$(TargetGroup)'=='netcoreapp' OR '$(TargetGroup)'=='uap')">
<Compile Include="$(CommonPath)\Interop\Windows\Interop.Libraries.cs">
<Link>Common\Interop\Windows\Interop.Libraries.cs</Link>
</Compile>
@@ -64,8 +58,9 @@
<Compile Include="$(CommonPath)\System\Diagnostics\Debug.Windows.cs">
<Link>Common\System\Diagnostics\Debug.Windows.cs</Link>
</Compile>
<Compile Include="System\Uri.Windows.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetsUnix)' == 'true' and '$(TargetGroup)' == 'netstandard1.0'">
<ItemGroup Condition="'$(TargetsUnix)' == 'true' and ('$(TargetGroup)'=='netcoreapp' OR '$(TargetGroup)'=='uap')">
<Compile Include="$(CommonPath)\System\Diagnostics\Debug.Unix.cs">
<Link>Common\System\Diagnostics\Debug.Unix.cs</Link>
</Compile>
@@ -108,15 +103,11 @@
<Compile Include="$(CommonPath)\Microsoft\Win32\SafeHandles\SafeFileHandleHelper.Unix.cs">
<Link>Common\Microsoft\Win32\SafeHandles\SafeFileHandleHelper.Unix.cs</Link>
</Compile>
<Compile Include="System\Uri.Unix.cs" />
</ItemGroup>
<ItemGroup Condition="'$(TargetGroup)'=='uap101aot' or '$(TargetGroup)' == 'netcoreapp1.2corert'">
<ItemGroup Condition="'$(TargetGroup)'=='uapaot'">
<EmbeddedResource Include="Resources\$(AssemblyName).rd.xml" />
<Compile Include="$(CommonPath)\System\SR.Core.cs">
<Link>Common\System\SR.Core.cs</Link>
</Compile>
<Compile Include="$(CommonPath)\System\Resources\NeutralResourcesLanguageAttribute.cs">
<Link>Common\System\Resources\NeutralResourcesLanguageAttribute.cs</Link>
</Compile>
<Compile Include="System\Uri.Windows.cs" />
</ItemGroup>
<ItemGroup>
<ReferenceFromRuntime Include="System.Private.CoreLib" />

View File

@@ -34,7 +34,7 @@ namespace System {
// Disables a fragment. A # char is considered as part of the path or query and is escaped
NoFragment = 0x20,
// if false then converta \ to /, otheriwse does this conversion for the Path component.
// if false then converta \ to /, otherwise does this conversion for the Path component.
DontConvertPathBackslashes = 0x40,
// if false, then a/./b or a/.../b becomes a/b and /a/../b becomes /b
@@ -141,4 +141,4 @@ namespace System {
UriSyntaxFlags.CanonicalizeAsFilePath |
UriSyntaxFlags.UnEscapeDotsAndSlashes;
}
}
}

View File

@@ -337,10 +337,13 @@ namespace System
// end includes ports, so changedEnd may be different from end
Debug.Assert(result != Invalid, "Failed to parse after already validated: " + name);
numbers[0] = (byte)(result >> 24);
numbers[1] = (byte)(result >> 16);
numbers[2] = (byte)(result >> 8);
numbers[3] = (byte)(result);
unchecked
{
numbers[0] = (byte)(result >> 24);
numbers[1] = (byte)(result >> 16);
numbers[2] = (byte)(result >> 8);
numbers[3] = (byte)(result);
}
}
return numbers[0] == 127;

View File

@@ -501,8 +501,11 @@ namespace System
++j;
}
number = IPv4AddressHelper.ParseHostNumber(address, i, j);
numbers[index++] = (ushort)(number >> 16);
numbers[index++] = (ushort)number;
unchecked
{
numbers[index++] = (ushort)(number >> 16);
numbers[index++] = (ushort)number;
}
i = j;
//

View File

@@ -307,9 +307,9 @@ namespace System
if (escape)
{
const int maxNumberOfBytesEncoded = 4;
const int MaxNumberOfBytesEncoded = 4;
if (bufferRemaining < maxNumberOfBytesEncoded * percentEncodingLen)
if (bufferRemaining < MaxNumberOfBytesEncoded * percentEncodingLen)
{
int newBufferLength = 0;
@@ -339,11 +339,11 @@ namespace System
pDest = (char*)destHandle.AddrOfPinnedObject();
}
byte[] encodedBytes = new byte[maxNumberOfBytesEncoded];
fixed (byte* pEncodedBytes = encodedBytes)
byte[] encodedBytes = new byte[MaxNumberOfBytesEncoded];
fixed (byte* pEncodedBytes = &encodedBytes[0])
{
int encodedBytesCount = Encoding.UTF8.GetBytes(pInput + next, surrogatePair ? 2 : 1, pEncodedBytes, maxNumberOfBytesEncoded);
Debug.Assert(encodedBytesCount <= maxNumberOfBytesEncoded, "UTF8 encoder should not exceed specified byteCount");
int encodedBytesCount = Encoding.UTF8.GetBytes(pInput + next, surrogatePair ? 2 : 1, pEncodedBytes, MaxNumberOfBytesEncoded);
Debug.Assert(encodedBytesCount <= MaxNumberOfBytesEncoded, "UTF8 encoder should not exceed specified byteCount");
bufferRemaining -= encodedBytesCount * percentEncodingLen;

View File

@@ -0,0 +1,7 @@
namespace System
{
public partial class Uri
{
private const bool IsWindowsSystem = false;
}
}

View File

@@ -0,0 +1,7 @@
namespace System
{
public partial class Uri
{
private const bool IsWindowsSystem = true;
}
}

View File

@@ -1 +1 @@
0b49658d660601699459d11db88cdb4e5b40e696
b71a57b6298267629cb06d027fa18410dc8fd4f4

View File

@@ -45,10 +45,11 @@ namespace System
// V1 compat
// A relative Uri wins over implicit UNC path unless the UNC path is of the form "\\something" and
// uriKind != Absolute
// A relative Uri wins over implicit Unix path unless uriKind == Absolute
if (NotAny(Flags.DosPath) &&
uriKind != UriKind.Absolute &&
(uriKind == UriKind.Relative || (_string.Length >= 2 && (_string[0] != '\\' || _string[1] != '\\'))))
((uriKind == UriKind.Relative || (_string.Length >= 2 && (_string[0] != '\\' || _string[1] != '\\')))
|| (!IsWindowsSystem && InFact(Flags.UnixPath))))
{
_syntax = null; //make it be relative Uri
_flags &= Flags.UserEscaped; // the only flag that makes sense for a relative uri

View File

@@ -2,22 +2,15 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#if netstandard10
using System.Runtime.Serialization;
#endif //netstandard10
namespace System
{
/// <summary>
/// An exception class used when an invalid Uniform Resource Identifier is detected.
/// </summary>
#if netstandard10
[Serializable]
#endif //netstandard10
public class UriFormatException : FormatException
#if netstandard10
, ISerializable
#endif //netstandard10
public class UriFormatException : FormatException, ISerializable
{
public UriFormatException() : base()
{
@@ -30,7 +23,7 @@ namespace System
public UriFormatException(string textString, Exception e) : base(textString, e)
{
}
#if netstandard10
protected UriFormatException(SerializationInfo serializationInfo, StreamingContext streamingContext) : base(serializationInfo, streamingContext)
{
}
@@ -38,6 +31,5 @@ namespace System
void ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext) {
base.GetObjectData(serializationInfo, streamingContext);
}
#endif //netstandard10
}; // class UriFormatException
} // namespace System

View File

@@ -412,7 +412,7 @@ namespace System
{
escapedReallocations = 30;
char[] newDest = new char[dest.Length + escapedReallocations * 3];
fixed (char* pNewDest = newDest)
fixed (char* pNewDest = &newDest[0])
{
for (int i = 0; i < destPosition; ++i)
pNewDest[i] = pDest[i];

View File

@@ -87,6 +87,7 @@ namespace System
internal static UriParser WssUri;
internal static UriParser FtpUri;
internal static UriParser FileUri;
internal static UriParser UnixFileUri;
internal static UriParser GopherUri;
internal static UriParser NntpUri;
internal static UriParser NewsUri;
@@ -125,6 +126,7 @@ namespace System
s_table[FtpUri.SchemeName] = FtpUri; //FTP
FileUri = new BuiltInUriParser("file", NoDefaultPort, s_fileSyntaxFlags);
UnixFileUri = new BuiltInUriParser("file", NoDefaultPort, s_unixFileSyntaxFlags);
s_table[FileUri.SchemeName] = FileUri; //FILE
GopherUri = new BuiltInUriParser("gopher", 70, GopherSyntaxFlags);
@@ -470,6 +472,8 @@ namespace System
UriSyntaxFlags.AllowIdn |
UriSyntaxFlags.AllowIriParsing;
private static readonly UriSyntaxFlags s_unixFileSyntaxFlags =
s_fileSyntaxFlags & ~UriSyntaxFlags.ConvertPathSlashes;
private const UriSyntaxFlags VsmacrosSyntaxFlags =
UriSyntaxFlags.MustHaveAuthority |

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
netstandard;
</BuildConfigurations>
</PropertyGroup>
</Project>

View File

@@ -4,8 +4,8 @@
<PropertyGroup>
<ProjectGuid>{0febe054-68ac-446f-b999-9068736d3cec}</ProjectGuid>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Debug|AnyCPU'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netstandard-Release|AnyCPU'" />
<ItemGroup>
<Compile Include="UriRelativeResolutionTest.cs" />
<Compile Include="UriTests.cs" />

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildConfigurations>
netstandard;
</BuildConfigurations>
</PropertyGroup>
</Project>

View File

@@ -12,16 +12,18 @@ namespace System.PrivateUri.Tests
/// <summary>
/// These tests attempt to verify the transitivity of Uri.MakeRelativeUri with new Uri(base, rel).
/// Specifically these tests address the use of Unicode and Iri with explicit and implicit file Uris.
/// Note: Many of the test only partially pass with the currrent Uri implementation. Known discrepancies
/// Note: Many of the test only partially pass with the current Uri implementation. Known discrepancies
/// have been marked as expected so that we can still track changes.
/// </summary>
public class IriRelativeFileResolutionTest
{
private static readonly bool s_isWindowsSystem = PlatformDetection.IsWindows;
[Fact]
public void IriRelativeResolution_CompareImplcitAndExplicitFileWithNoUnicode_AllPropertiesTheSame()
{
string nonUnicodeImplicitTestFile = @"c:\path\path3\test.txt";
string nonUnicodeImplicitFileBase = @"c:\path\file.txt";
string nonUnicodeImplicitTestFile = s_isWindowsSystem ? @"c:\path\path3\test.txt" : "/path/path3/test.txt";
string nonUnicodeImplicitFileBase = s_isWindowsSystem ? @"c:\path\file.txt" : "/path/file.txt";
string testResults;
int errorCount = RelatavizeRestoreCompareImplicitVsExplicitFiles(nonUnicodeImplicitTestFile,
@@ -32,8 +34,8 @@ namespace System.PrivateUri.Tests
[Fact]
public void IriRelativeResolution_CompareImplcitAndExplicitFileWithReservedChar_AllPropertiesTheSame()
{
string nonUnicodeImplicitTestFile = @"c:\path\path3\test.txt%25%";
string nonUnicodeImplicitFileBase = @"c:\path\file.txt";
string nonUnicodeImplicitTestFile = s_isWindowsSystem ? @"c:\path\path3\test.txt%25%" : "/path/path3/test.txt%25%";
string nonUnicodeImplicitFileBase = s_isWindowsSystem ? @"c:\path\file.txt" : "/path/file.txt";
string testResults;
int errorCount = RelatavizeRestoreCompareImplicitVsExplicitFiles(nonUnicodeImplicitTestFile,
@@ -45,8 +47,8 @@ namespace System.PrivateUri.Tests
[Fact]
public void IriRelativeResolution_CompareImplcitAndExplicitFileWithUnicodeIriOn_AllPropertiesTheSame()
{
string unicodeImplicitTestFile = @"c:\path\\u30AF\path3\\u30EB\u30DE.text";
string nonUnicodeImplicitFileBase = @"c:\path\file.txt";
string unicodeImplicitTestFile = s_isWindowsSystem ? @"c:\path\\u30AF\path3\\u30EB\u30DE.text" : "/path//u30AF/path3//u30EB/u30DE.text";
string nonUnicodeImplicitFileBase = s_isWindowsSystem ? @"c:\path\file.txt" : "/path/file.txt";
string testResults;
int errorCount = RelatavizeRestoreCompareImplicitVsExplicitFiles(unicodeImplicitTestFile,
@@ -57,13 +59,13 @@ namespace System.PrivateUri.Tests
[Fact]
public void IriRelativeResolution_CompareImplcitAndExplicitFileWithUnicodeAndReservedCharIriOn_AllPropertiesTheSame()
{
string unicodeImplicitTestFile = @"c:\path\\u30AF\path3\\u30EB\u30DE.text%25%";
string nonUnicodeImplicitFileBase = @"c:\path\file.txt";
string unicodeImplicitTestFile = s_isWindowsSystem ? @"c:\path\\u30AF\path3\\u30EB\u30DE.text%25%" : "/path//u30AF/path3//u30EB/u30DE.text%25%";
string nonUnicodeImplicitFileBase = s_isWindowsSystem ? @"c:\path\file.txt" : "/path/file.txt";
string testResults;
int errorCount = RelatavizeRestoreCompareImplicitVsExplicitFiles(unicodeImplicitTestFile,
nonUnicodeImplicitFileBase, out testResults);
Assert.True((errorCount == 4), testResults);
Assert.True((errorCount == (s_isWindowsSystem ? 4 : 0)), testResults);
// AbsolutePath, AbsoluteUri, LocalPath, PathAndQuery
}
@@ -81,6 +83,7 @@ namespace System.PrivateUri.Tests
}
[Fact]
[PlatformSpecific(TestPlatforms.Windows)] // Unc paths must start with '\' on Unix
public void IriRelativeResolution_CompareImplcitAndExplicitUncForwardSlashesWithNoUnicode_AllPropertiesTheSame()
{
string nonUnicodeImplicitTestUnc = @"//c/path/path3/test.txt";
@@ -109,9 +112,10 @@ namespace System.PrivateUri.Tests
public static int RelatavizeRestoreCompareImplicitVsExplicitFiles(string original,
string baseString, out string errors)
{
string fileSchemePrefix = s_isWindowsSystem ? "file:///" : "file://";
Uri implicitTestUri = new Uri(original);
Uri implicitBaseUri = new Uri(baseString);
Uri explicitBaseUri = new Uri("file:///" + baseString);
Uri explicitBaseUri = new Uri(fileSchemePrefix + baseString);
Uri rel = implicitBaseUri.MakeRelativeUri(implicitTestUri);
Uri implicitResultUri = new Uri(implicitBaseUri, rel);
@@ -125,7 +129,7 @@ namespace System.PrivateUri.Tests
{
string implicitValue = info.GetValue(implicitResultUri, null).ToString();
string explicitValue = info.GetValue(explicitResultUri, null).ToString();
if (!(implicitValue.Equals(explicitValue) || ("file:///" + implicitValue).Equals(explicitValue)))
if (!(implicitValue.Equals(explicitValue) || (fileSchemePrefix + implicitValue).Equals(explicitValue)))
{
errorCount++;
testResults.Append("Property mismatch: " + info.Name + ", implicit value: " + implicitValue
@@ -149,14 +153,17 @@ namespace System.PrivateUri.Tests
[Fact]
public void IriRelativeResolution_CompareImplcitAndOriginalFileWithNoUnicode_AllPropertiesTheSame()
{
string nonUnicodeImplicitTestFile = @"c:\path\path3\test.txt";
string nonUnicodeImplicitFileBase = @"c:\path\file.txt";
string nonUnicodeImplicitTestFile = s_isWindowsSystem ? @"c:\path\path3\test.txt" : "/path/path3/test.txt";
string nonUnicodeImplicitFileBase = s_isWindowsSystem ? @"c:\path\file.txt" : "/path/file.txt";
string testResults;
int errorCount = RelatavizeRestoreCompareVsOriginal(nonUnicodeImplicitTestFile,
nonUnicodeImplicitFileBase, out testResults);
Assert.True((errorCount == 1), testResults);
Assert.True(IsOriginalString(testResults), testResults);
Assert.True((errorCount == (s_isWindowsSystem ? 1 : 0)), testResults);
if (s_isWindowsSystem)
{
Assert.True(IsOriginalString(testResults), testResults);
}
}
[Fact]
@@ -173,6 +180,7 @@ namespace System.PrivateUri.Tests
}
[Fact]
[PlatformSpecific(TestPlatforms.Windows)] // Unc paths must start with '\' on Unix
public void IriRelativeResolution_CompareUncForwardSlashesAndOriginalFileWithNoUnicode_AllPropertiesTheSame()
{
string nonUnicodeUncTestFile = @"//c/path/path3/test.txt";

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