[master] Update dependencies from dotnet/coreclr (dotnet/corefx#37298)
authordotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Tue, 30 Apr 2019 20:40:12 +0000 (16:40 -0400)
committerStephen Toub <stoub@microsoft.com>
Tue, 30 Apr 2019 20:40:12 +0000 (16:40 -0400)
* Update dependencies from https://github.com/dotnet/coreclr build 20190429.75

- Microsoft.NET.Sdk.IL - 3.0.0-preview6-27629-75
- Microsoft.NETCore.ILAsm - 3.0.0-preview6-27629-75
- Microsoft.NETCore.Runtime.CoreCLR - 3.0.0-preview6-27629-75

* Disable NullEncodingThrows test on all but netfx

* add precision

precision tests added and precision increased in current tests

fixing max value test

* Fixing tests for netfx

Commit migrated from https://github.com/dotnet/corefx/commit/33f3985174a8f7727cfeaa507963c0f76b8a0908

src/libraries/System.IO/tests/StreamWriter/StreamWriter.CtorTests.cs
src/libraries/System.Runtime/tests/System/TimeSpanTests.cs
src/libraries/System.Runtime/tests/System/TimeSpanTests.netcoreapp.cs

index 4f8e51d..963b6b6 100644 (file)
@@ -31,6 +31,7 @@ namespace System.IO.Tests
             Assert.Equal("HelloWorld", str2);
         }
 
+        [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
         [Fact]
         public static void NullEncodingThrows()
         {
index 783c239..083f88d 100644 (file)
@@ -426,20 +426,40 @@ namespace System.Tests
             AssertExtensions.Throws<ArgumentException>(null, () => TimeSpan.FromSeconds(double.NaN)); // Value is NaN
         }
 
-        public static IEnumerable<object[]> FromMilliseconds_TestData()
+        public static IEnumerable<object[]> FromMilliseconds_TestData_NetCore()
         {
-            yield return new object[] { 1500.5, new TimeSpan(0, 0, 0, 1, 501) };
-            yield return new object[] { 2.5, new TimeSpan(0, 0, 0, 0, 3) };
-            yield return new object[] { 1.0, new TimeSpan(0, 0, 0, 0, 1) };
-            yield return new object[] { 0.0, new TimeSpan(0, 0, 0, 0, 0) };
-            yield return new object[] { -1.0, new TimeSpan(0, 0, 0, 0, -1) };
-            yield return new object[] { -2.5, new TimeSpan(0, 0, 0, 0, -3) };
-            yield return new object[] { -1500.5, new TimeSpan(0, 0, 0, -1, -501) };
+            yield return new object[] { 1500.5, new TimeSpan(15005000) };
+            yield return new object[] { 2.5, new TimeSpan(25000) };
+            yield return new object[] { 1.0, new TimeSpan(10000) };
+            yield return new object[] { 0.0, new TimeSpan(0) };
+            yield return new object[] { -1.0, new TimeSpan(-10000) };
+            yield return new object[] { -2.5, new TimeSpan(-25000) };
+            yield return new object[] { -1500.5, new TimeSpan(-15005000) };
+        }
+
+        [Theory]
+        [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
+        [MemberData(nameof(FromMilliseconds_TestData_NetCore))]
+        public static void FromMilliseconds_Netcore(double value, TimeSpan expected)
+        {
+            Assert.Equal(expected, TimeSpan.FromMilliseconds(value));
+        }
+
+        public static IEnumerable<object[]> FromMilliseconds_TestData_Desktop()
+        {
+            yield return new object[] { 1500.5, new TimeSpan(15010000) };
+            yield return new object[] { 2.5, new TimeSpan(30000) };
+            yield return new object[] { 1.0, new TimeSpan(10000) };
+            yield return new object[] { 0.0, new TimeSpan(0) };
+            yield return new object[] { -1.0, new TimeSpan(-10000) };
+            yield return new object[] { -2.5, new TimeSpan(-30000) };
+            yield return new object[] { -1500.5, new TimeSpan(-15010000) };
         }
 
         [Theory]
-        [MemberData(nameof(FromMilliseconds_TestData))]
-        public static void FromMilliseconds(double value, TimeSpan expected)
+        [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework)]
+        [MemberData(nameof(FromMilliseconds_TestData_Desktop))]
+        public static void FromMilliseconds_Desktop(double value, TimeSpan expected)
         {
             Assert.Equal(expected, TimeSpan.FromMilliseconds(value));
         }
@@ -447,7 +467,7 @@ namespace System.Tests
         [Fact]
         public static void FromMilliseconds_Invalid()
         {
-            double maxMilliseconds = long.MaxValue / TimeSpan.TicksPerMillisecond;
+            double maxMilliseconds = (double)TimeSpan.MaxValue.Ticks / (double)TimeSpan.TicksPerMillisecond + 1;
 
             Assert.Throws<OverflowException>(() => TimeSpan.FromMilliseconds(double.PositiveInfinity)); // Value is positive infinity
             Assert.Throws<OverflowException>(() => TimeSpan.FromMilliseconds(double.NegativeInfinity)); // Value is positive infinity
index 037dec3..13b7969 100644 (file)
@@ -16,8 +16,8 @@ namespace System.Tests
             yield return new object[] {new TimeSpan(14, 2, 30, 0), 192.0, TimeSpan.FromDays(2708)};
             yield return new object[] {TimeSpan.FromDays(366), Math.PI, new TimeSpan(993446995288779)};
             yield return new object[] {TimeSpan.FromDays(366), -Math.E, new TimeSpan(-859585952922633)};
-            yield return new object[] {TimeSpan.FromDays(29.530587981), 13.0, TimeSpan.FromDays(383.897643819444)};
-            yield return new object[] {TimeSpan.FromDays(-29.530587981), -12.0, TimeSpan.FromDays(354.367055833333)};
+            yield return new object[] {TimeSpan.FromDays(29.530587981), 13.0, TimeSpan.FromDays(29.530587981 * 13.0) };
+            yield return new object[] {TimeSpan.FromDays(-29.530587981), -12.0, TimeSpan.FromDays(-29.530587981 * -12.0) };
             yield return new object[] {TimeSpan.FromDays(-29.530587981), 0.0, TimeSpan.Zero};
             yield return new object[] {TimeSpan.MaxValue, 0.5, TimeSpan.FromTicks((long)(long.MaxValue * 0.5))};
         }
@@ -313,5 +313,16 @@ namespace System.Tests
             char[] dst = new char[1];
             Assert.Throws<FormatException>(() => new TimeSpan().TryFormat(dst.AsSpan(), out int charsWritten, invalidFormat, null));
         }
+
+        [Fact]
+        public static void ConvertToTimeSpanPrecisionTest()
+        {
+            Assert.Equal(12345, TimeSpan.FromMilliseconds(1.23456).Ticks);
+            Assert.Equal(12345, TimeSpan.FromMilliseconds(1.234567).Ticks);
+
+            Assert.Equal(12345600, TimeSpan.FromSeconds(1.23456).Ticks);
+
+            Assert.Equal(1.23456 * 60 * 10_000_000, TimeSpan.FromMinutes(1.23456).Ticks);
+        }
     }
 }