Преглед на файлове

Merge pull request #25 from shiftkey/get-tests-working

[WIP] get tests passing
Brendan Forster преди 9 години
родител
ревизия
90ee054c5a
променени са 30 файла, в които са добавени 119 реда и са изтрити 118 реда
  1. 1 0
      Ix.NET/Source/Tests/AssertEx.cs
  2. 2 2
      Ix.NET/Source/Tests/AsyncTests.Bugs.cs
  3. 3 0
      Ix.NET/Source/Tests/System.Interactive.Tests.xproj
  4. 5 0
      Ix.NET/Source/Tests/Tests.Creation.cs
  5. 36 60
      Ix.NET/Source/Tests/project.json
  6. 1 0
      Rx.NET/Source/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.xproj
  7. 2 2
      Rx.NET/Source/System.Reactive.Core/Strings_Core.Generated.cs
  8. 1 3
      Rx.NET/Source/System.Reactive.Core/System.Reactive.Core.xproj
  9. 2 4
      Rx.NET/Source/System.Reactive.Experimental/System.Reactive.Experimental.xproj
  10. 1 0
      Rx.NET/Source/System.Reactive.Interfaces/System.Reactive.Interfaces.xproj
  11. 2 2
      Rx.NET/Source/System.Reactive.Linq/Strings_Linq.Generated.cs
  12. 1 0
      Rx.NET/Source/System.Reactive.Linq/System.Reactive.Linq.xproj
  13. 1 3
      Rx.NET/Source/System.Reactive.Observable.Aliases/System.Reactive.Observable.Aliases.xproj
  14. 2 2
      Rx.NET/Source/System.Reactive.PlatformServices/Strings_PlatformServices.Generated.cs
  15. 1 2
      Rx.NET/Source/System.Reactive.PlatformServices/System.Reactive.PlatformServices.xproj
  16. 2 2
      Rx.NET/Source/System.Reactive.Providers/Strings_Providers.Generated.cs
  17. 1 3
      Rx.NET/Source/System.Reactive.Providers/System.Reactive.Providers.xproj
  18. 1 3
      Rx.NET/Source/System.Reactive.Runtime.Remoting/System.Reactive.Runtime.Remoting.xproj
  19. 1 3
      Rx.NET/Source/System.Reactive.Windows.Forms/System.Reactive.Windows.Forms.xproj
  20. 2 2
      Rx.NET/Source/System.Reactive.Windows.Threading/Strings_WindowsThreading.Generated.cs
  21. 1 3
      Rx.NET/Source/System.Reactive.Windows.Threading/System.Reactive.Windows.Threading.xproj
  22. 1 3
      Rx.NET/Source/System.Reactive.WindowsRuntime/System.Reactive.WindowsRuntime.xproj
  23. 1 1
      Rx.NET/Source/Tests.System.Reactive/DispatcherHelpers.cs
  24. 0 7
      Rx.NET/Source/Tests.System.Reactive/Properties/AppManifest.xml
  25. 4 0
      Rx.NET/Source/Tests.System.Reactive/Tests.System.Reactive.xproj
  26. 22 0
      Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableAwaiterTest.cs
  27. 3 1
      Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableBlockingTest.cs
  28. 1 1
      Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableConcurrencyTest.cs
  29. 8 2
      Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableExTest.cs
  30. 10 7
      Rx.NET/Source/Tests.System.Reactive/project.json

+ 1 - 0
Ix.NET/Source/Tests/AssertEx.cs

@@ -4,6 +4,7 @@ using System;
 
 namespace Tests
 {
+    [Obsolete("Switch over to xUnit asserts wherever possible")]
     internal class AssertEx
     {
         internal static void Throws<T>(Action action)

+ 2 - 2
Ix.NET/Source/Tests/AsyncTests.Bugs.cs

@@ -117,7 +117,7 @@ namespace Tests
         }
 
         [Fact]
-        public void DisposesUponError()
+        public async Task DisposesUponError()
         {
             var disposed = new TaskCompletionSource<bool>();
 
@@ -130,7 +130,7 @@ namespace Tests
             var ys = xs.Select(x => { if (x == 1) throw ex; return x; });
 
             var e = ys.GetEnumerator();
-            AssertThrows<Exception>(() => e.MoveNext().Wait());
+            await Assert.ThrowsAsync<Exception>(() => e.MoveNext());
 
             Assert.True(disposed.Task.Result);
         }

+ 3 - 0
Ix.NET/Source/Tests/System.Interactive.Tests.xproj

@@ -18,6 +18,9 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
     <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
+  <ItemGroup>
+    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
+  </ItemGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 5 - 0
Ix.NET/Source/Tests/Tests.Creation.cs

@@ -5,6 +5,7 @@ using System.Collections.Generic;
 using System.Linq;
 using Xunit;
 using System.Collections;
+using System.Threading;
 
 namespace Tests
 {
@@ -44,6 +45,8 @@ namespace Tests
         [Fact]
         public void CreateYield()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var xs = EnumerableEx.Create<int>(async yield => {
                 var i = 0;
                 while (i < 10)
@@ -65,6 +68,8 @@ namespace Tests
         [Fact]
         public void CreateYieldBreak()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var xs = EnumerableEx.Create<int>(async yield => {
                 var i = 0;
                 while (true)

+ 36 - 60
Ix.NET/Source/Tests/project.json

@@ -12,13 +12,17 @@
     "dependencies": {
         "System.Interactive.Providers": { "target": "project" },
         "System.Interactive.Async.Providers": { "target": "project" },
-        "xunit": "2.1.0"
+        "xunit": "2.1.0",
+        "xunit.runner.dnx": "2.1.0-rc1-build204"
     },
     "exclude": [
         "App.cs"
     ],
+    "commands": {
+      "test": "xunit.runner.dnx"
+    },
     "frameworks": {
-        "net45": {
+        "dnx451": {
             "compilationOptions": {
                 "define": [
                     "NO_EVENTARGS_CONSTRAINT",
@@ -38,63 +42,35 @@
                 "System.Threading.Tasks": "4.0.0.0"
             }
         },
-        "dotnet5.1": {
-            "compilationOptions": {
-                "define": [
-                    "NO_EVENTARGS_CONSTRAINT",
-                    "HAS_EDI",
-                    "HAS_WINRT",
-                    "HAS_PROGRESS",
-                    "PREFER_ASYNC",
-                    "HAS_AWAIT",
-                    "HAS_APTCA",
-                    "NO_REMOTING",
-                    "NO_SERIALIZABLE",
-                    "NO_THREAD",
-                    "NO_WEAKTABLE",
-                    "CRIPPLED_REFLECTION",
-                    "PLIB",
-                    "USE_TIMER_SELF_ROOT"
-                ]
-            },
-            "dependencies": {
-                "System.Linq": "4.0.0",
-                "System.Collections.Concurrent": "4.0.0",
-                "System.ComponentModel": "4.0.0",
-                "System.Threading": "4.0.0",
-                "System.Threading.Timer": "4.0.0",
-                "System.Runtime": "4.0.0",
-                "System.Runtime.Extensions": "4.0.0"
-            }
-
-        },
-        "dotnet5.4": {
-            "compilationOptions": {
-                "define": [
-                    "NO_EVENTARGS_CONSTRAINT",
-                    "HAS_EDI",
-                    "HAS_WINRT",
-                    "HAS_PROGRESS",
-                    "PREFER_ASYNC",
-                    "HAS_AWAIT",
-                    "HAS_APTCA",
-                    "NO_REMOTING",
-                    "NO_SERIALIZABLE",
-                    "NO_THREAD",
-                    "CRIPPLED_REFLECTION",
-                    "PLIB",
-                    "USE_TIMER_SELF_ROOT"
-                ]
-            },
-            "dependencies": {
-                "System.Collections.Concurrent": "4.0.11-beta-23516",
-                "System.ComponentModel": "4.0.1-beta-23516",
-                "System.Linq": "4.0.1-beta-23516",
-                "System.Threading": "4.0.11-beta-23516",
-                "System.Threading.Thread": "4.0.0-beta-23516",
-                "System.Threading.ThreadPool": "4.0.10-beta-23516",
-                "System.Threading.Timer": "4.0.1-beta-23516"
-            }
-        }
+    "dnx461": {
+      "compilationOptions": {
+        "define": [
+            "NO_EVENTARGS_CONSTRAINT",
+            "HAS_EDI",
+            "HAS_WINRT",
+            "HAS_PROGRESS",
+            "PREFER_ASYNC",
+            "HAS_AWAIT",
+            "HAS_APTCA",
+            "NO_REMOTING",
+            "NO_SERIALIZABLE",
+            "NO_THREAD",
+            "CRIPPLED_REFLECTION",
+            "PLIB",
+            "USE_TIMER_SELF_ROOT"
+        ]
+      },
+      "dependencies": {
+        "System.Collections.Concurrent": "4.0.0",
+        "System.Linq": "4.0.0",
+        "System.Threading": "4.0.0",
+        "System.Threading.Tasks": "4.0.0",
+        "System.Threading.Timer": "4.0.0",
+        "System.Runtime": "4.0.0",
+        "System.Runtime.Extensions": "4.0.0",
+        "System.Reflection": "4.0.0",        
+        "System.Reflection.Extensions": "4.0.0"
+      }
     }
+  }
 }

+ 1 - 0
Rx.NET/Source/Microsoft.Reactive.Testing/Microsoft.Reactive.Testing.xproj

@@ -10,6 +10,7 @@
     <RootNamespace>Microsoft.Reactive.Testing</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>

+ 2 - 2
Rx.NET/Source/System.Reactive.Core/Strings_Core.Generated.cs

@@ -54,9 +54,9 @@ namespace System.Reactive
                 if (object.ReferenceEquals(resourceMan, null))
                 {
 #if (CRIPPLED_REFLECTION && HAS_WINRT)
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_Core", typeof(Strings_Core).GetTypeInfo().Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Core.Strings_Core", typeof(Strings_Core).GetTypeInfo().Assembly);
 #else
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_Core", typeof(Strings_Core).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Core.Strings_Core", typeof(Strings_Core).Assembly);
 #endif
                     resourceMan = temp;
                 }

+ 1 - 3
Rx.NET/Source/System.Reactive.Core/System.Reactive.Core.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 2 - 4
Rx.NET/Source/System.Reactive.Experimental/System.Reactive.Experimental.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive.Experimental</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
+  </PropertyGroup>  
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 1 - 0
Rx.NET/Source/System.Reactive.Interfaces/System.Reactive.Interfaces.xproj

@@ -10,6 +10,7 @@
     <RootNamespace>System.Reactive</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>

+ 2 - 2
Rx.NET/Source/System.Reactive.Linq/Strings_Linq.Generated.cs

@@ -54,9 +54,9 @@ namespace System.Reactive
                 if (object.ReferenceEquals(resourceMan, null))
                 {
 #if (CRIPPLED_REFLECTION && HAS_WINRT)
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_Linq", typeof(Strings_Linq).GetTypeInfo().Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Linq.Strings_Linq", typeof(Strings_Linq).GetTypeInfo().Assembly);
 #else
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_Linq", typeof(Strings_Linq).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Linq.Strings_Linq", typeof(Strings_Linq).Assembly);
 #endif
                     resourceMan = temp;
                 }

+ 1 - 0
Rx.NET/Source/System.Reactive.Linq/System.Reactive.Linq.xproj

@@ -10,6 +10,7 @@
     <RootNamespace>System.Reactive</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>

+ 1 - 3
Rx.NET/Source/System.Reactive.Observable.Aliases/System.Reactive.Observable.Aliases.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive.Observable.Aliases</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 2 - 2
Rx.NET/Source/System.Reactive.PlatformServices/Strings_PlatformServices.Generated.cs

@@ -54,9 +54,9 @@ namespace System.Reactive
                 if (object.ReferenceEquals(resourceMan, null))
                 {
 #if (CRIPPLED_REFLECTION && HAS_WINRT)
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_PlatformServices", typeof(Strings_PlatformServices).GetTypeInfo().Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.PlatformServices.Strings_PlatformServices", typeof(Strings_PlatformServices).GetTypeInfo().Assembly);
 #else
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_PlatformServices", typeof(Strings_PlatformServices).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.PlatformServices.Strings_PlatformServices", typeof(Strings_PlatformServices).Assembly);
 #endif
                     resourceMan = temp;
                 }

+ 1 - 2
Rx.NET/Source/System.Reactive.PlatformServices/System.Reactive.PlatformServices.xproj

@@ -4,15 +4,14 @@
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
     <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
   </PropertyGroup>
-
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" />
   <PropertyGroup Label="Globals">
     <ProjectGuid>7dd3dda0-0b73-4a7f-acaf-15111ac2eb93</ProjectGuid>
     <RootNamespace>System.Reactive.PlatformServices</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
-
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
   </PropertyGroup>

+ 2 - 2
Rx.NET/Source/System.Reactive.Providers/Strings_Providers.Generated.cs

@@ -54,9 +54,9 @@ namespace System.Reactive
                 if (object.ReferenceEquals(resourceMan, null))
                 {
 #if (CRIPPLED_REFLECTION && HAS_WINRT)
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_Providers", typeof(Strings_Providers).GetTypeInfo().Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Providers.Strings_Providers", typeof(Strings_Providers).GetTypeInfo().Assembly);
 #else
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_Providers", typeof(Strings_Providers).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Providers.Strings_Providers", typeof(Strings_Providers).Assembly);
 #endif
                     resourceMan = temp;
                 }

+ 1 - 3
Rx.NET/Source/System.Reactive.Providers/System.Reactive.Providers.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive.Observable.Aliases</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 1 - 3
Rx.NET/Source/System.Reactive.Runtime.Remoting/System.Reactive.Runtime.Remoting.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive.Observable.Aliases</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 1 - 3
Rx.NET/Source/System.Reactive.Windows.Forms/System.Reactive.Windows.Forms.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 2 - 2
Rx.NET/Source/System.Reactive.Windows.Threading/Strings_WindowsThreading.Generated.cs

@@ -54,9 +54,9 @@ namespace System.Reactive
                 if (object.ReferenceEquals(resourceMan, null))
                 {
 #if CRIPPLED_REFLECTION
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_WindowsThreading", typeof(Strings_WindowsThreading).GetTypeInfo().Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Windows.Threading.Strings_WindowsThreading", typeof(Strings_WindowsThreading).GetTypeInfo().Assembly);
 #else
-                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Strings_WindowsThreading", typeof(Strings_WindowsThreading).Assembly);
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("System.Reactive.Windows.Threading.Strings_WindowsThreading", typeof(Strings_WindowsThreading).Assembly);
 #endif
                     resourceMan = temp;
                 }

+ 1 - 3
Rx.NET/Source/System.Reactive.Windows.Threading/System.Reactive.Windows.Threading.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 1 - 3
Rx.NET/Source/System.Reactive.WindowsRuntime/System.Reactive.WindowsRuntime.xproj

@@ -10,14 +10,12 @@
     <RootNamespace>System.Reactive</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
     <TypeScriptCompileBlocked>True</TypeScriptCompileBlocked>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
-    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
-  </PropertyGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 1 - 1
Rx.NET/Source/Tests.System.Reactive/DispatcherHelpers.cs

@@ -1,7 +1,7 @@
 // Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
 
 using System;
-#if DOTNET5_1
+#if DOTNET5_1 || DNX51
 using System.Threading;
 #else
 using System.Windows.Threading;

+ 0 - 7
Rx.NET/Source/Tests.System.Reactive/Properties/AppManifest.xml

@@ -1,7 +0,0 @@
-<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
-        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
->
-    <Deployment.Parts>
-    </Deployment.Parts>
-    
-</Deployment>

+ 4 - 0
Rx.NET/Source/Tests.System.Reactive/Tests.System.Reactive.xproj

@@ -10,10 +10,14 @@
     <RootNamespace>System.Reactive</RootNamespace>
     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath>
     <OutputPath Condition="'$(OutputPath)'=='' ">..\..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath>
+    <ProduceOutputsOnBuild>True</ProduceOutputsOnBuild>
   </PropertyGroup>
   <PropertyGroup>
     <SchemaVersion>2.0</SchemaVersion>
   </PropertyGroup>
+  <ItemGroup>
+    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
+  </ItemGroup>
   <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" />
   <ProjectExtensions>
     <VisualStudio>

+ 22 - 0
Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableAwaiterTest.cs

@@ -31,6 +31,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void Await()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var scheduler = new TestScheduler();
 
             var xs = scheduler.CreateHotObservable(
@@ -62,6 +64,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void Await_Connectable()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var scheduler = new TestScheduler();
 
             var s = default(long);
@@ -95,6 +99,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void Await_Error()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var scheduler = new TestScheduler();
 
             var ex = new Exception();
@@ -126,6 +132,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void Await_Never()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var scheduler = new TestScheduler();
 
             var xs = scheduler.CreateHotObservable(
@@ -156,6 +164,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void Await_Empty()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var scheduler = new TestScheduler();
 
             var xs = scheduler.CreateHotObservable(
@@ -189,6 +199,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void RunAsync_Simple()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var scheduler = new TestScheduler();
 
             var xs = scheduler.CreateHotObservable(
@@ -216,6 +228,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void RunAsync_Cancelled()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var cts = new CancellationTokenSource();
             cts.Cancel();
 
@@ -252,6 +266,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void RunAsync_Cancel()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var cts = new CancellationTokenSource();
 
             var scheduler = new TestScheduler();
@@ -289,6 +305,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void RunAsync_Connectable()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var scheduler = new TestScheduler();
 
             var s = default(long);
@@ -322,6 +340,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void RunAsync_Connectable_Cancelled()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var cts = new CancellationTokenSource();
             cts.Cancel();
 
@@ -365,6 +385,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void RunAsync_Connectable_Cancel()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var cts = new CancellationTokenSource();
 
             var scheduler = new TestScheduler();

+ 3 - 1
Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableBlockingTest.cs

@@ -1165,6 +1165,8 @@ namespace ReactiveTests.Tests
         [Fact]
         public void Latest_Error()
         {
+            SynchronizationContext.SetSynchronizationContext(null);
+
             var ex = new Exception();
 
             var evt = new AutoResetEvent(false);
@@ -1176,7 +1178,7 @@ namespace ReactiveTests.Tests
                     obs.OnNext(1);
                     evt.WaitOne();
                     obs.OnError(ex);
-                }).Start();
+                });
 
                 return () => { };
             });

+ 1 - 1
Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableConcurrencyTest.cs

@@ -9,7 +9,7 @@ using System.Reactive.Disposables;
 using System.Reactive.Linq;
 using System.Reactive.Subjects;
 using System.Threading;
-#if NET45
+#if NET45 || DNX451
 using System.Windows.Threading;
 #endif
 using Microsoft.Reactive.Testing;

+ 8 - 2
Rx.NET/Source/Tests.System.Reactive/Tests/Linq/ObservableExTest.cs

@@ -618,12 +618,18 @@ namespace ReactiveTests.Tests
             );
         }
 
-        [Fact(Skip ="")]
+        [Fact]
         public void Iterate_Void_Func_Throw()
         {
             var scheduler = new TestScheduler();
 
-            ReactiveAssert.Throws<InvalidOperationException>(() => scheduler.Start(() => ObservableEx.Create(() => { throw new InvalidOperationException(); })));
+            var obs = scheduler.Start(() => ObservableEx.Create(() => { throw new InvalidOperationException(); }));
+
+            Assert.Equal(1, obs.Messages.Count);
+
+            var notification = obs.Messages[0].Value;
+            Assert.Equal(NotificationKind.OnError, notification.Kind);
+            Assert.IsType<InvalidOperationException>(notification.Exception);
         }
 
         static IEnumerable<IObservable<Object>> _IteratorScenario_Void(int x, int y)

+ 10 - 7
Rx.NET/Source/Tests.System.Reactive/project.json

@@ -17,23 +17,26 @@
     "Microsoft.Reactive.Testing": { "target": "project" },
     "System.Reactive.Experimental": { "target": "project" },
     "System.Reactive.Providers": { "target": "project" }, 
-    "System.Reactive.Observable.Aliases": {"target": "project"}, 
-    "xunit": "2.1.0"
+    "System.Reactive.Observable.Aliases": {"target": "project"},
+    "xunit": "2.1.0",
+    "xunit.runner.dnx": "2.1.0-rc1-build204"
   },
-  
+  "commands": {
+    "test": "xunit.runner.dnx"
+  },
+
   "frameworks": {
-    "net45": {
+    "dnx451": {
       "compilationOptions": {
         "define": [
             "NO_EVENTARGS_CONSTRAINT",
+            "NO_REMOTING",
             "HAS_EDI",
             "HAS_WINRT",
             "HAS_PROGRESS",
             "PREFER_ASYNC",
             "HAS_AWAIT",
             "HAS_APTCA",
-            "HAS_DISPATCHER",
-            "HAS_DISPATCHER_PRIORITY",
             "HAS_STACKTRACE",
             "HAS_WINFORMS",
             "USE_TIMER_SELF_ROOT"
@@ -51,7 +54,7 @@
         "System.Threading.Tasks": "4.0.0.0"
       }
     },
-    "dotnet5.1": {
+    "dnx51": {
       "compilationOptions": {
         "define": [
             "NO_EVENTARGS_CONSTRAINT",