Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add WindowsBase tests #8215

Merged
merged 9 commits into from
Jan 15, 2025
Merged

Add WindowsBase tests #8215

merged 9 commits into from
Jan 15, 2025

Conversation

hughbe
Copy link
Contributor

@hughbe hughbe commented Sep 13, 2023

Wrote these a long long while ago, sending in for CI

Microsoft Reviewers: Open in CodeFlow

@hughbe hughbe requested a review from a team as a code owner September 13, 2023 09:38
@ghost ghost assigned hughbe Sep 13, 2023
@ghost ghost added the PR metadata: Label to tag PRs, to facilitate with triage label Sep 13, 2023
@ghost ghost requested review from dipeshmsft and singhashish-wpf September 13, 2023 09:38
@ghost ghost added the Community Contribution A label for all community Contributions label Sep 13, 2023
@hughbe hughbe force-pushed the windowsbase-tests branch 2 times, most recently from 90229fe to f7622fc Compare September 13, 2023 13:38
@hughbe hughbe force-pushed the windowsbase-tests branch from c4b0418 to 60cdc7c Compare October 5, 2023 08:14
@hughbe hughbe force-pushed the windowsbase-tests branch 3 times, most recently from 69a8dcb to 2e394c6 Compare April 28, 2024 09:27
@ThomasGoulet73
Copy link
Contributor

Hey @hughbe, are you still planning on working on this ? If yes, could you rebase on main to include my PR #9471 which should fix the WindowsBase conflict that you saw and other errors that you would have gotten at build and runtime.

I pulled your changes locally and ran the tests. Rebased on main and with a couple of other infra changes, the tests were running and the failures seemed specific to the code. Let me know and I'll send you my changes.

@hughbe
Copy link
Contributor Author

hughbe commented Jul 29, 2024

Hi there - yes I am planning on advancing this. I will try to do so this week!

@hughbe hughbe force-pushed the windowsbase-tests branch from 2e394c6 to 3f5dbfb Compare July 29, 2024 10:25
@hughbe hughbe requested a review from a team as a code owner July 29, 2024 10:25
@hughbe hughbe force-pushed the windowsbase-tests branch from 99369e2 to c7467ff Compare July 30, 2024 09:30
@hughbe
Copy link
Contributor Author

hughbe commented Aug 3, 2024

Errors on the debug build:

Unhandled exception. Unhandled exception. System.DllNotFoundException: Unable to load DLL 'PresentationNative_cor3.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
   at MS.Internal.WindowsBase.NativeMethodsSetLastError.SetWindowLongPtrWndProc(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong)
   at MS.Win32.UnsafeNativeMethods.CriticalSetWindowLong(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs:line 473
   at MS.Win32.HwndSubclass.HookWindowProc(IntPtr hwnd, WndProc newWndProc, IntPtr oldWndProc) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 468
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 292
System.DllNotFoundException: Unable to load DLL 'PresentationNative_cor3.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
   at MS.Internal.WindowsBase.NativeMethodsSetLastError.SetWindowLongPtrWndProc(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong)
   at MS.Win32.UnsafeNativeMethods.CriticalSetWindowLong(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs:line 473
   at MS.Win32.HwndSubclass.HookWindowProc(IntPtr hwnd, WndProc newWndProc, IntPtr oldWndProc) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 468
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 292
Unhandled exception. System.DllNotFoundException: Unable to load DLL 'PresentationNative_cor3.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
   at MS.Internal.WindowsBase.NativeMethodsSetLastError.SetWindowLongPtrWndProc(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong)
   at MS.Win32.UnsafeNativeMethods.CriticalSetWindowLong(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs:line 473
   at MS.Win32.HwndSubclass.HookWindowProc(IntPtr hwnd, WndProc newWndProc, IntPtr oldWndProc) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 468
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 292
Unhandled exception. System.DllNotFoundException: Unable to load DLL 'PresentationNative_cor3.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
   at MS.Internal.WindowsBase.NativeMethodsSetLastError.SetWindowLongPtrWndProc(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong)
   at MS.Win32.UnsafeNativeMethods.CriticalSetWindowLong(HandleRef hWnd, Int32 nIndex, WndProc dwNewLong) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs:line 473
   at MS.Win32.HwndSubclass.HookWindowProc(IntPtr hwnd, WndProc newWndProc, IntPtr oldWndProc) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 468
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) in /_/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HwndSubclass.cs:line 292

@ThomasGoulet73
Copy link
Contributor

Hey @hughbe, I was able to repro locally and I opened a PR to fix it #9534.

Could you also fix the configuration mapping of WindowsBase.Tests.csproj in the solution (You just need to remove and re-add WindowsBase.Tests.csproj in the solution).

@ThomasGoulet73
Copy link
Contributor

Hey @hughbe, could you rebase on main ? My PR #9471 was merged in main today and it should fix the errors you are seeing.

I pulled your branch locally and I was able to run the tests. There's a couple more things that needs fixing in your PR:

  1. You need to fix the configuration mapping of WindowsBase.Tests.csproj in the solution (You just need to remove and re-add WindowsBase.Tests.csproj in the solution, it will handle the mapping automatically).
  2. Some tests are failing on my machine. Some of these test failures is because they depend on the current culture and they fail on my machine because they expect the result to have "," as the "List separator" in the culture settings while mine is ";" (ca-FR).
Logs for the point 2
xUnit.net Console Runner v2.9.0+593e57303e (32-bit .NET 10.0.0-alpha.1.24454.6)
  Discovering: WindowsBase.Tests
  Discovered:  WindowsBase.Tests
  Starting:    WindowsBase.Tests
    System.Windows.Tests.Int32RectTests.ToString_Invoke_ReturnsExpected(rect: 1;2;3;4, expected: "1,2,3,4") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2,3,4"
      Actual:   "1;2;3;4"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Int32RectTests.cs(369,0): at System.Windows.Tests.Int32RectTests.ToString_Invoke_ReturnsExpected(Int32Rect rect, String expected)
           at InvokeStub_Int32RectTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(value: 0;0;0;0;0;0, expected: "0,0,0,0,0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0,0,0,0,0
      Actual:   0;0;0;0;0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Media\MatrixConverterTests.cs(31,0): at System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Matrix value, String expected)
           at InvokeStub_MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(value: 2;3;4;5;6;7, expected: "2,3,4,5,6,7") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 2,3,4,5,6,7
      Actual:   2;3;4;5;6;7
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Media\MatrixConverterTests.cs(31,0): at System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Matrix value, String expected)
           at InvokeStub_MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(matrix: 0;0;0;0, expected: "0,0,0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0,0,0
      Actual:   0;0;0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\RectConverterTests.cs(31,0): at System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Rect matrix, String expected)
           at InvokeStub_RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(value: 2,2;3,3;4,4;5,5;6,6;7,7, expected: "2.2,3.3,4.4,5.5,6.6,7.7") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 2.2,3.3,4.4,5.5,6.6,7.7
      Actual:   2,2;3,3;4,4;5,5;6,6;7,7
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Media\MatrixConverterTests.cs(31,0): at System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Matrix value, String expected)
           at InvokeStub_MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.Int32RectTests.ToString_Invoke_ReturnsExpected(rect: -1;-2;3;4, expected: "-1,-2,3,4") [FAIL]
      Assert.Equal() Failure: Strings differ
                   ↓ (pos 2)
      Expected: "-1,-2,3,4"
      Actual:   "-1;-2;3;4"
                   ↑ (pos 2)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Int32RectTests.cs(369,0): at System.Windows.Tests.Int32RectTests.ToString_Invoke_ReturnsExpected(Int32Rect rect, String expected)
           at InvokeStub_Int32RectTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(matrix: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0
      Actual:   0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorConverterTests.cs(31,0): at System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Vector matrix, String expected)
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
    System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(value: -1;-2;-3;-4;-5;-6, expected: "-1,-2,-3,-4,-5,-6") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: -1,-2,-3,-4,-5,-6
      Actual:   -1;-2;-3;-4;-5;-6
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Media\MatrixConverterTests.cs(31,0): at System.Windows.Media.Tests.MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Matrix value, String expected)
           at InvokeStub_MatrixConverterTests.ConvertTo_InvokeMatrixToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(matrix: 0;0;0;0, expected: "0,0,0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0,0,0
      Actual:   0;0;0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\RectConverterTests.cs(31,0): at System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Rect matrix, String expected)
           at InvokeStub_RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(matrix: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0
      Actual:   0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorConverterTests.cs(31,0): at System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Vector matrix, String expected)
           at InvokeStub_VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(matrix: 1;2;3;4, expected: "1,2,3,4") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1,2,3,4
      Actual:   1;2;3;4
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\RectConverterTests.cs(31,0): at System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Rect matrix, String expected)
           at InvokeStub_RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(matrix: 1,1;2,2;3,3;4,4, expected: "1.1,2.2,3.3,4.4") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1.1,2.2,3.3,4.4
      Actual:   1,1;2,2;3,3;4,4
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\RectConverterTests.cs(31,0): at System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Rect matrix, String expected)
           at InvokeStub_RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(matrix: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1,2
      Actual:   1;2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorConverterTests.cs(31,0): at System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Vector matrix, String expected)
           at InvokeStub_VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(matrix: -1;-2;3;4, expected: "-1,-2,3,4") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: -1,-2,3,4
      Actual:   -1;-2;3;4
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\RectConverterTests.cs(31,0): at System.Windows.Tests.RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Rect matrix, String expected)
           at InvokeStub_RectConverterTests.ConvertTo_InvokeRectToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(matrix: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1.1,2.2
      Actual:   1,1;2,2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorConverterTests.cs(31,0): at System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Vector matrix, String expected)
           at InvokeStub_VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(matrix: -1;-2, expected: "-1,-2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: -1,-2
      Actual:   -1;-2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorConverterTests.cs(31,0): at System.Windows.Tests.VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Vector matrix, String expected)
           at InvokeStub_VectorConverterTests.ConvertTo_InvokeVectorToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.Int32RectTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(rect: 1;2;3;4, expected: "1,2,3,4") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2,3,4"
      Actual:   "1;2;3;4"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Int32RectTests.cs(426,0): at System.Windows.Tests.Int32RectTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Int32Rect rect, String expected)
           at InvokeStub_Int32RectTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.Int32RectTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(rect: -1;-2;3;4, expected: "-1,-2,3,4") [FAIL]
      Assert.Equal() Failure: Strings differ
                   ↓ (pos 2)
      Expected: "-1,-2,3,4"
      Actual:   "-1;-2;3;4"
                   ↑ (pos 2)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Int32RectTests.cs(426,0): at System.Windows.Tests.Int32RectTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Int32Rect rect, String expected)
           at InvokeStub_Int32RectTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(matrix: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0
      Actual:   0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeConverterTests.cs(31,0): at System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Size matrix, String expected)
           at InvokeStub_SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(matrix: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0
      Actual:   0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeConverterTests.cs(31,0): at System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Size matrix, String expected)
           at InvokeStub_SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(matrix: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1.1,2.2
      Actual:   1,1;2,2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeConverterTests.cs(31,0): at System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Size matrix, String expected)
           at InvokeStub_SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(matrix: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1,2
      Actual:   1;2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeConverterTests.cs(31,0): at System.Windows.Tests.SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Size matrix, String expected)
           at InvokeStub_SizeConverterTests.ConvertTo_InvokeSizeToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(point: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(438,0): at System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(Point point, String expected)
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
    System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(point: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(438,0): at System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(point: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2"
      Actual:   "1;2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(438,0): at System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(point: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1.1,2.2"
      Actual:   "1,1;2,2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(438,0): at System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(point: -1;-2, expected: "-1,-2") [FAIL]
      Assert.Equal() Failure: Strings differ
                   ↓ (pos 2)
      Expected: "-1,-2"
      Actual:   "-1;-2"
                   ↑ (pos 2)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(438,0): at System.Windows.Tests.PointTests.ToString_Invoke_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.Int32RectConverterTests.ConvertTo_InvokeInt32RectToString_ReturnsExpected(matrix: 1;2;3;4, expected: "1,2,3,4") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1,2,3,4
      Actual:   1;2;3;4
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Int32RectConverterTests.cs(31,0): at System.Windows.Tests.Int32RectConverterTests.ConvertTo_InvokeInt32RectToString_ReturnsExpected(Int32Rect matrix, String expected)
           at InvokeStub_Int32RectConverterTests.ConvertTo_InvokeInt32RectToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.Int32RectConverterTests.ConvertTo_InvokeInt32RectToString_ReturnsExpected(matrix: -1;-2;3;4, expected: "-1,-2,3,4") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: -1,-2,3,4
      Actual:   -1;-2;3;4
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Int32RectConverterTests.cs(31,0): at System.Windows.Tests.Int32RectConverterTests.ConvertTo_InvokeInt32RectToString_ReturnsExpected(Int32Rect matrix, String expected)
           at InvokeStub_Int32RectConverterTests.ConvertTo_InvokeInt32RectToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(point: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(503,0): at System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Point point, String expected)
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
    System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(point: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(503,0): at System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(point: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2"
      Actual:   "1;2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(503,0): at System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(point: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1.1,2.2"
      Actual:   "1,1;2,2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(503,0): at System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(point: -1;-2, expected: "-1,-2") [FAIL]
      Assert.Equal() Failure: Strings differ
                   ↓ (pos 2)
      Expected: "-1,-2"
      Actual:   "-1;-2"
                   ↑ (pos 2)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointTests.cs(503,0): at System.Windows.Tests.PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Point point, String expected)
           at InvokeStub_PointTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(matrix: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0
      Actual:   0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointConverterTests.cs(31,0): at System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Point matrix, String expected)
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
    System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(matrix: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 0,0
      Actual:   0;0
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointConverterTests.cs(31,0): at System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Point matrix, String expected)
           at InvokeStub_PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(matrix: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1,2
      Actual:   1;2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointConverterTests.cs(31,0): at System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Point matrix, String expected)
           at InvokeStub_PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(matrix: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: 1.1,2.2
      Actual:   1,1;2,2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointConverterTests.cs(31,0): at System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Point matrix, String expected)
           at InvokeStub_PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(matrix: -1;-2, expected: "-1,-2") [FAIL]
      Assert.Equal() Failure: Values differ
      Expected: -1,-2
      Actual:   -1;-2
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\PointConverterTests.cs(31,0): at System.Windows.Tests.PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Point matrix, String expected)
           at InvokeStub_PointConverterTests.ConvertTo_InvokePointToString_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(vector: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(775,0): at System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Vector vector, String expected)
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
    System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(vector: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(775,0): at System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(vector: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2"
      Actual:   "1;2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(775,0): at System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(vector: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1.1,2.2"
      Actual:   "1,1;2,2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(775,0): at System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(vector: -1;-2, expected: "-1,-2") [FAIL]
      Assert.Equal() Failure: Strings differ
                   ↓ (pos 2)
      Expected: "-1,-2"
      Actual:   "-1;-2"
                   ↑ (pos 2)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(775,0): at System.Windows.Tests.VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.ComponentModel.Tests.CurrentChangedEventManagerTests.RemoveHandler_InvokeNoSource_Success [FAIL]
      System.NullReferenceException : Object reference not set to an instance of an object.
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\src\WindowsBase\System\ComponentModel\CurrentChangedEventManager.cs(106,0): at System.ComponentModel.CurrentChangedEventManager.StartListening(Object source)
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\src\WindowsBase\System\Windows\WeakEventManager.cs(281,0): at System.Windows.WeakEventManager.AddListener(Object source, IWeakEventListener listener, Delegate handler)
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\src\WindowsBase\System\Windows\WeakEventManager.cs(253,0): at System.Windows.WeakEventManager.ProtectedAddHandler(Object source, Delegate handler)
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\src\WindowsBase\System\ComponentModel\CurrentChangedEventManager.cs(71,0): at System.ComponentModel.CurrentChangedEventManager.AddHandler(ICollectionView source, EventHandler`1 handler)
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\ComponentModel\CurrentChangedEventManagerTests.cs(383,0): at System.ComponentModel.Tests.CurrentChangedEventManagerTests.RemoveHandler_InvokeNoSource_Success()
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
    System.ComponentModel.Tests.CurrentChangedEventManagerTests.AddHandler_InvokeNoSource_Success [FAIL]
      Assert.Throws() Failure: No exception was thrown
      Expected: typeof(System.NullReferenceException)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\ComponentModel\CurrentChangedEventManagerTests.cs(170,0): at System.ComponentModel.Tests.CurrentChangedEventManagerTests.AddHandler_InvokeNoSource_Success()
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
    System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(size: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(471,0): at System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(size: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(471,0): at System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(size: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1.1,2.2"
      Actual:   "1,1;2,2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(471,0): at System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(size: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2"
      Actual:   "1;2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(471,0): at System.Windows.Tests.SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_InvokeIFormattableInvariantCulture_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Interop.Tests.ComponentDispatcherTests.PopModal_Invoke_Success [FAIL]
      Assert.False() Failure
      Expected: False
      Actual:   True
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Interop\ComponentDispatcherTests.cs(246,0): at System.Windows.Interop.Tests.ComponentDispatcherTests.PopModal_Invoke_Success()
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
    System.Windows.Interop.Tests.ComponentDispatcherTests.IsThreadModal_Get_ReturnsExpected [FAIL]
      Assert.False() Failure
      Expected: False
      Actual:   True
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Interop\ComponentDispatcherTests.cs(23,0): at System.Windows.Interop.Tests.ComponentDispatcherTests.IsThreadModal_Get_ReturnsExpected()
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
    System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(vector: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(710,0): at System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(Vector vector, String expected)
           at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
           at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
           at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
    System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(vector: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(710,0): at System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(size: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(406,0): at System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
Process terminated. Assertion failed.
_deferLevel > 0
   at System.Windows.Data.DataSourceProvider.EndDefer() in C:\Git\WPF\src\Microsoft.DotNet.Wpf\src\WindowsBase\System\Windows\Data\DataSourceProvider.cs:line 347
   at System.Windows.Data.DataSourceProvider.EndInit() in C:\Git\WPF\src\Microsoft.DotNet.Wpf\src\WindowsBase\System\Windows\Data\DataSourceProvider.cs:line 332
   at System.Windows.Data.Tests.DataSourceProviderTests.CustomBeginQueryDataSourceProvider.EndInit() in C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Data\DataSourceProviderTests.cs:line 1870
   at System.Windows.Data.Tests.DataSourceProviderTests.BeginInit_InvokeMultipleTimesEnded_Success() in C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\Data\DataSourceProviderTests.cs:line 375
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(Object obj, IntPtr* args)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 148
   at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_0.<<InvokeTestMethodAsync>b__1>d.MoveNext() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 250
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_0.<InvokeTestMethodAsync>b__1()
   at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) in /_/src/xunit.execution/Sdk/Frameworks/ExecutionTimer.cs:line 48
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction)
   at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_0.<InvokeTestMethodAsync>b__0() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 209
   at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) in /_/src/xunit.core/Sdk/ExceptionAggregator.cs:line 90
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code)
   at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 208
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance)
   at Xunit.Sdk.XunitTestInvoker.InvokeTestMethodAsync(Object testClassInstance) in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestInvoker.cs:line 112
   at Xunit.Sdk.TestInvoker`1.<RunAsync>b__45_0() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 174
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestInvoker`1.<RunAsync>b__45_0()
   at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) in /_/src/xunit.core/Sdk/ExceptionAggregator.cs:line 107
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)
   at Xunit.Sdk.TestInvoker`1.RunAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs:line 157
   at Xunit.Sdk.XunitTestRunner.InvokeTestMethodAsync(ExceptionAggregator aggregator) in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestRunner.cs:line 88
   at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestRunner.cs:line 70
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator)
   at Xunit.Sdk.TestRunner`1.<>c__DisplayClass43_0.<RunAsync>b__0() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestRunner.cs:line 149
   at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) in /_/src/xunit.core/Sdk/ExceptionAggregator.cs:line 107
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)
   at Xunit.Sdk.TestRunner`1.RunAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestRunner.cs:line 149
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestRunner`1.RunAsync()
   at Xunit.Sdk.XunitTestCaseRunner.RunTestAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestCaseRunner.cs:line 140
   at Xunit.Sdk.TestCaseRunner`1.RunAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestCaseRunner.cs:line 82
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestCaseRunner`1.RunAsync()
   at Xunit.Sdk.XunitTestCase.RunAsync(IMessageSink diagnosticMessageSink, IMessageBus messageBus, Object[] constructorArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) in /_/src/xunit.execution/Sdk/Frameworks/XunitTestCase.cs:line 170
   at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestMethodRunner.cs:line 45
   at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestMethodRunner.cs:line 136
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync()
   at Xunit.Sdk.TestMethodRunner`1.RunAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestMethodRunner.cs:line 106
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestMethodRunner`1.RunAsync()
   at Xunit.Sdk.XunitTestClassRunner.RunTestMethodAsync(ITestMethod testMethod, IReflectionMethodInfo method, IEnumerable`1 testCases, Object[] constructorArguments) in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestClassRunner.cs:line 206
   at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync()
   at Xunit.Sdk.TestClassRunner`1.RunAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestClassRunner.cs:line 175
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestClassRunner`1.RunAsync()
   at Xunit.Sdk.XunitTestCollectionRunner.RunTestClassAsync(ITestClass testClass, IReflectionTypeInfo class, IEnumerable`1 testCases) in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestCollectionRunner.cs:line 185
   at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync()
   at Xunit.Sdk.TestCollectionRunner`1.RunAsync() in /_/src/xunit.execution/Sdk/Frameworks/Runners/TestCollectionRunner.cs:line 101
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.TestCollectionRunner`1.RunAsync()
   at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionAsync(IMessageBus messageBus, ITestCollection testCollection, IEnumerable`1 testCases, CancellationTokenSource cancellationTokenSource) in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestAssemblyRunner.cs:line 346
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
   at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionAsync(IMessageBus messageBus, ITestCollection testCollection, IEnumerable`1 testCases, CancellationTokenSource cancellationTokenSource)
   at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass16_2.<RunTestCollectionsAsync>b__2() in /_/src/xunit.execution/Sdk/Frameworks/Runners/XunitTestAssemblyRunner.cs:line 250
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.<>c.<.cctor>b__292_0(Object obj)
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   at System.Threading.Tasks.Task.ExecuteEntryUnsafe(Thread threadPoolThread)
   at System.Threading.Tasks.Task.ExecuteFromThreadPool(Thread threadPoolThread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart()
   at System.Threading.Thread.StartCallback()
    System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(vector: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2"
      Actual:   "1;2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(710,0): at System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(size: 0;0, expected: "0,0") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "0,0"
      Actual:   "0;0"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(406,0): at System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(vector: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1.1,2.2"
      Actual:   "1,1;2,2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(710,0): at System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(size: 1,1;2,2, expected: "1.1,2.2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1.1,2.2"
      Actual:   "1,1;2,2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(406,0): at System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(vector: -1;-2, expected: "-1,-2") [FAIL]
      Assert.Equal() Failure: Strings differ
                   ↓ (pos 2)
      Expected: "-1,-2"
      Actual:   "-1;-2"
                   ↑ (pos 2)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\VectorTests.cs(710,0): at System.Windows.Tests.VectorTests.ToString_Invoke_ReturnsExpected(Vector vector, String expected)
           at InvokeStub_VectorTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
    System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(size: 1;2, expected: "1,2") [FAIL]
      Assert.Equal() Failure: Strings differ
                  ↓ (pos 1)
      Expected: "1,2"
      Actual:   "1;2"
                  ↑ (pos 1)
      Stack Trace:
        C:\Git\WPF\src\Microsoft.DotNet.Wpf\tests\UnitTests\WindowsBase.Tests\System\Windows\SizeTests.cs(406,0): at System.Windows.Tests.SizeTests.ToString_Invoke_ReturnsExpected(Size size, String expected)
           at InvokeStub_SizeTests.ToString_Invoke_ReturnsExpected(Object, Span`1)
           at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
=== COMMAND LINE ===
"C:\Git\WPF\.dotnet\x86\dotnet.exe" exec --depsfile "C:\Git\WPF\artifacts\bin\WindowsBase.Tests\x86\Debug\net9.0\WindowsBase.Tests.deps.json" --runtimeconfig "C:\Git\WPF\artifacts\bin\WindowsBase.Tests\x86\Debug\net9.0\WindowsBase.Tests.runtimeconfig.json"  "C:\Users\thoma\.nuget\packages\xunit.runner.console/2.9.0/tools/netcoreapp2.0/xunit.console.dll" "C:\Git\WPF\artifacts\bin\WindowsBase.Tests\x86\Debug\net9.0\WindowsBase.Tests.dll" -noautoreporters -xml "C:\Git\WPF\artifacts\TestResults\Debug\WindowsBase.Tests_net9.0_x86.xml" -html "C:\Git\WPF\artifacts\TestResults\Debug\WindowsBase.Tests_net9.0_x86.html"  > "C:\Git\WPF\artifacts\log\Debug\WindowsBase.Tests_net9.0_x86.log" 2>&1

@JeremyKuhne
Copy link
Member

@hughbe any chance you'll have a few to rebase this again? I'll try to advocate for this on our side. @lonitra want to make you aware of this.

@hughbe
Copy link
Contributor Author

hughbe commented Dec 10, 2024

@JeremyKuhne would you like me to rebase with or without the changes to remove the invalid debug asserts that crash the tests?

@JeremyKuhne
Copy link
Member

@hughbe I don't have a strong opinion either way. I've added the NoAssertContext to the shared test assembly if that will help you any. dotnet/winforms#12621 It should show up in WPF in a couple days.

@himgoyalmicro
Copy link
Contributor

/azp run

Copy link

Pull request contains merge conflicts.

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@dipeshmsft
Copy link
Member

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@dipeshmsft
Copy link
Member

dipeshmsft commented Jan 9, 2025

@hughbe, I was trying to debug the tests further, and although the tests run without any issues when ran via Test Explorer in Visual Studio, but when we run them using CLI using the following command

.\build.cmd -plat x64 -test

the tests that are meant to test classes derived from WeakEventManager, like CollectionChangedEventManagerTest, CurrentChangedEventManagerTests, WeakEventManagerTTests are crashing with unhandled exceptions with the following error message

Exception Info: System.InvalidCastException: Unable to cast object of type 'MS.Internal.NamedObject' to type System.ComponentModel.ICollectionView

or an invalid cast exception to some other type depending on the tests. On looking further found that the NamedObject has the _name parameter set to StaticSource.

I am looking more into this, but would like to know if you have some more inputs on this.


UPDATE : I am guessing this has something to do when we are passing null as the source, when adding listeners to WeakEventManager and subclasses.

object sourceKey = source ?? StaticSource;


UPDATE 2 : Here is a commit disabling a few tests which fixes the InvalidCastException : e9429c4

@hughbe
Copy link
Contributor Author

hughbe commented Jan 9, 2025

Hi there. Sorry for the terrible feedback loop from me on this! I’ve been moving home and haven’t been able to dedicate the sort of time it deserves.

my initial theory is that there could be a bug in WPF where we’re forcing a cast to some sort of internal class that end users can’t instantiate (w/o reflection)

a fix could be to add if (x is NamedObject o) around the cast?

@dipeshmsft
Copy link
Member

my initial theory is that there could be a bug in WPF where we’re forcing a cast to some sort of internal class that end users can’t instantiate (w/o reflection)

a fix could be to add if (x is NamedObject o) around the cast?

I am not sure about what is the right fix for this right now.

However at this moment, I think it would be best to disable the few tests and take them up as a separate issue. I tried disabling a couple of them in this commit : e9429c4 and did not ran into the exception.

Hi there. Sorry for the terrible feedback loop from me on this! I’ve been moving home and haven’t been able to dedicate the sort of time it deserves.

That's okay, nothing to worry about. We haven't been good at it either. 😅

@dipeshmsft
Copy link
Member

@hughbe, what are your thoughts on disabling the 5-6 tests ? If you are okay with it, I can push a commit disabling those tests and move the PR ahead.

@hughbe
Copy link
Contributor Author

hughbe commented Jan 13, 2025

Yes, let's go ahead with that thanks

@h3xds1nz
Copy link
Member

@dipeshmsft whole DRM doesn't work afaik so u might as well disable the tests to it.

#9855 (comment)

@dipeshmsft
Copy link
Member

@h3xds1nz DRM ?

@h3xds1nz
Copy link
Member

@dipeshmsft The SecureEnvironment thing with RightsManagementTransform stuff. Basically stuff that requires PresentationHost

@dipeshmsft
Copy link
Member

The tests are still working for that area so I am not removing other tests. However there is a Dispatcher test failing which may need disabling for now.

@h3xds1nz
Copy link
Member

@dipeshmsft Ye I see, as for the failing test it needs to be [WpfFact] so its run in the context with Dispatcher.

@dipeshmsft
Copy link
Member

dipeshmsft commented Jan 13, 2025

@h3xds1nz, but it worked this time. It is kind of flaky.

And everytime just the first test fails in the DispatcherTests class.

@hughbe, any comments on this ?

I am thinking of keeping it this way, if the failure happens for multiple PRs then I will disable the CurrentDispatcher_Get_ReturnsExpected test and check.

@h3xds1nz
Copy link
Member

h3xds1nz commented Jan 13, 2025

@h3xds1nz, but it worked this time. It is kind of flaky.

I reproduced it locally multiple times; FromThread_CurrentThread_ReturnsExpected as well is retrieving dispatcher from current thread, well of course this will be null if there's no dispatcher for the thread, which is gonna be the case if this test runs first on the thread. WpfFact ensures this will be STA thread with proper context, so we should adjust it before commiting.

I'm currently dealing with a race condition in System.Xaml tests from previous batch; we should make sure the tests are stable as well.

@dipeshmsft
Copy link
Member

I reproduced it locally multiple times; FromThread_CurrentThread_ReturnsExpected as well is retrieving dispatcher from current thread, well of course this will be null if there's no dispatcher for the thread, which is gonna be the case if this test runs first on the thread. WpfFact ensures this will be STA thread with proper context, so we should adjust it before commiting.

In that case, I should update all the tests in DispatcherTests to WpfFact and WpfTheory .

@h3xds1nz
Copy link
Member

Yeah, in the DispatcherTests case we should. I went through them briefly and don't think there's one that shouldn't.

@dipeshmsft dipeshmsft merged commit b115680 into dotnet:main Jan 15, 2025
8 checks passed
@dipeshmsft
Copy link
Member

Thanks @hughbe for these tests, this is a great addition to our CI testing test suites.
Thanks @h3xds1nz @lonitra for your help on this PR.
I will be opening an issue to track all the disabled tests so that we can discuss and work to reenable the tests.

@hughbe
Copy link
Contributor Author

hughbe commented Jan 15, 2025

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Community Contribution A label for all community Contributions PR metadata: Label to tag PRs, to facilitate with triage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants