diff --git a/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject index 04ab17c4e1..2627a59093 100644 --- a/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject @@ -1,5 +1,8 @@  + + ..\TestFiles\Direct2D1\**.* + 3000 True diff --git a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject index a8c3abe8f2..7fe2430013 100644 --- a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject @@ -1,7 +1,9 @@  - 1000 - True + + ..\TestFiles\Skia\**.* + + 3000 True \ No newline at end of file diff --git a/Avalonia.sln b/Avalonia.sln index a29f3dd754..679ef1579e 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.27004.2008 +VisualStudioVersion = 15.0.27130.2024 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}" EndProject @@ -45,11 +45,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Layout.UnitTests", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Interactivity.UnitTests", "tests\Avalonia.Interactivity.UnitTests\Avalonia.Interactivity.UnitTests.csproj", "{08478EF5-44E8-42E9-92D6-15E00EC038D8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1.RenderTests", "tests\Avalonia.RenderTests\Avalonia.Direct2D1.RenderTests.csproj", "{DABFD304-D6A4-4752-8123-C2CCF7AC7831}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1.RenderTests", "tests\Avalonia.Direct2D1.RenderTests\Avalonia.Direct2D1.RenderTests.csproj", "{DABFD304-D6A4-4752-8123-C2CCF7AC7831}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input.UnitTests", "tests\Avalonia.Input.UnitTests\Avalonia.Input.UnitTests.csproj", "{AC18926A-E784-40FE-B09D-BB0FE2B599F0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.Xaml.UnitTests", "tests\Avalonia.Markup.Xaml.UnitTests\Avalonia.Markup.Xaml.UnitTests.csproj", "{99135EAB-653D-47E4-A378-C96E1278CA44}" EndProject @@ -114,8 +114,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DesignerSupport.Te EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.DesignerSupport.TestApp", "tests\Avalonia.DesignerSupport.TestApp\Avalonia.DesignerSupport.TestApp.csproj", "{F1381F98-4D24-409A-A6C5-1C5B1E08BB08}" EndProject -Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Avalonia.RenderTests", "tests\Avalonia.RenderTests\Avalonia.RenderTests.shproj", "{48840EDD-24BF-495D-911E-2EB12AE75D3B}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VirtualizationTest", "samples\VirtualizationTest\VirtualizationTest.csproj", "{FBCAF3D0-2808-4934-8E96-3F607594517B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{A0CC0258-D18C-4AB3-854F-7101680FC3F9}" @@ -176,7 +174,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Direct3DInteropSample", "sa EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Win32.Interop", "src\Windows\Avalonia.Win32.Interop\Avalonia.Win32.Interop.csproj", "{CBC4FF2F-92D4-420B-BE21-9FE0B930B04E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.RenderTests", "tests\Avalonia.RenderTests\Avalonia.Skia.RenderTests.csproj", "{E1582370-37B3-403C-917F-8209551B1634}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.RenderTests", "tests\Avalonia.Skia.RenderTests\Avalonia.Skia.RenderTests.csproj", "{E1582370-37B3-403C-917F-8209551B1634}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Remote.Protocol", "src\Avalonia.Remote.Protocol\Avalonia.Remote.Protocol.csproj", "{D78A720C-C0C6-478B-8564-F167F9BDD01B}" EndProject @@ -200,7 +198,6 @@ Global src\Shared\RenderHelpers\RenderHelpers.projitems*{3e908f67-5543-4879-a1dc-08eace79b3cd}*SharedItemsImports = 4 src\Windows\Avalonia.Win32\Avalonia.Win32.Shared.projitems*{40759a76-d0f2-464e-8000-6ff0f5c4bd7c}*SharedItemsImports = 4 src\Shared\PlatformSupport\PlatformSupport.projitems*{4488ad85-1495-4809-9aa4-ddfe0a48527e}*SharedItemsImports = 4 - tests\Avalonia.RenderTests\Avalonia.RenderTests.projitems*{48840edd-24bf-495d-911e-2eb12ae75d3b}*SharedItemsImports = 13 src\Shared\PlatformSupport\PlatformSupport.projitems*{4a1abb09-9047-4bd5-a4ad-a055e52c5ee0}*SharedItemsImports = 4 src\Shared\PlatformSupport\PlatformSupport.projitems*{7863ea94-f0fb-4386-bf8c-e5bfa761560a}*SharedItemsImports = 4 src\Shared\PlatformSupport\PlatformSupport.projitems*{7b92af71-6287-4693-9dcb-bd5b6e927e23}*SharedItemsImports = 4 @@ -2643,7 +2640,6 @@ Global {57E0455D-D565-44BB-B069-EE1AA20F8337} = {9B9E3891-2366-4253-A952-D08BCEB71098} {52F55355-D120-42AC-8116-8410A7D602FA} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {F1381F98-4D24-409A-A6C5-1C5B1E08BB08} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} - {48840EDD-24BF-495D-911E-2EB12AE75D3B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {FBCAF3D0-2808-4934-8E96-3F607594517B} = {9B9E3891-2366-4253-A952-D08BCEB71098} {A0CC0258-D18C-4AB3-854F-7101680FC3F9} = {9B9E3891-2366-4253-A952-D08BCEB71098} {C7A69145-60B6-4882-97D6-A3921DD43978} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9} diff --git a/build.cake b/build.cake index 61fda13695..01aefff093 100644 --- a/build.cake +++ b/build.cake @@ -197,8 +197,8 @@ Task("Run-Render-Tests") .IsDependentOn("Build") .WithCriteria(() => !parameters.SkipTests && parameters.IsRunningOnWindows) .Does(() => { - RunCoreTest("./tests/Avalonia.RenderTests/Avalonia.Skia.RenderTests.csproj", parameters, true); - RunCoreTest("./tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", parameters, true); + RunCoreTest("./tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj", parameters, true); + RunCoreTest("./tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", parameters, true); }); Task("Run-Designer-Unit-Tests") diff --git a/src/Avalonia.Visuals/Media/Geometry.cs b/src/Avalonia.Visuals/Media/Geometry.cs index 8201736238..6aff70624d 100644 --- a/src/Avalonia.Visuals/Media/Geometry.cs +++ b/src/Avalonia.Visuals/Media/Geometry.cs @@ -131,7 +131,6 @@ namespace Avalonia.Media protected void InvalidateGeometry() { _isDirty = true; - _platformImpl?.Dispose(); _platformImpl = null; Changed?.Invoke(this, EventArgs.Empty); } diff --git a/src/Skia/Avalonia.Skia/GeometryImpl.cs b/src/Skia/Avalonia.Skia/GeometryImpl.cs index 4ecd687777..fb134b728c 100644 --- a/src/Skia/Avalonia.Skia/GeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/GeometryImpl.cs @@ -9,7 +9,6 @@ namespace Avalonia.Skia { public abstract Rect Bounds { get; } public abstract SKPath EffectivePath { get; } - public abstract void Dispose(); public abstract bool FillContains(Point point); public abstract Rect GetRenderBounds(Pen pen); public abstract IGeometryImpl Intersect(IGeometryImpl geometry); diff --git a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs index e8ab5fc6da..935d6d5e5b 100644 --- a/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/StreamGeometryImpl.cs @@ -28,8 +28,6 @@ namespace Avalonia.Skia }; } - public override void Dispose() => _path.Dispose(); - public IStreamGeometryContextImpl Open() { _path = new SKPath(); diff --git a/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs b/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs index b89a7d2f2e..e14d3f04be 100644 --- a/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs +++ b/src/Skia/Avalonia.Skia/TransformedGeometryImpl.cs @@ -23,10 +23,6 @@ namespace Avalonia.Skia public override Rect Bounds => SourceGeometry.Bounds.TransformToAABB(Transform); - public override void Dispose() - { - } - public override bool FillContains(Point point) { // TODO: Not supported by SkiaSharp yet, so use expanded Rect diff --git a/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs index 5de0218cce..8f11d1463b 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/GeometryImpl.cs @@ -23,8 +23,6 @@ namespace Avalonia.Direct2D1.Media /// public Geometry Geometry { get; } - public void Dispose() => Geometry.Dispose(); - /// public Rect GetRenderBounds(Avalonia.Media.Pen pen) { diff --git a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj similarity index 69% rename from tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj rename to tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj index 6af8fd8963..42d99cc19a 100644 --- a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj +++ b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj @@ -1,19 +1,9 @@ - - - obj-Direct2D1 - - + netcoreapp2.0 - bin\Direct2D\$(Configuration) - false - False - $(DefineConstants);AVALONIA_DIRECT2D - Library - - + @@ -33,7 +23,5 @@ - - \ No newline at end of file diff --git a/tests/Avalonia.Direct2D1.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Direct2D1.UnitTests/Properties/AssemblyInfo.cs index a8edd50b31..a462e5b079 100644 --- a/tests/Avalonia.Direct2D1.UnitTests/Properties/AssemblyInfo.cs +++ b/tests/Avalonia.Direct2D1.UnitTests/Properties/AssemblyInfo.cs @@ -4,7 +4,5 @@ using System.Reflection; using Xunit; -[assembly: AssemblyTitle("Avalonia.Direct2D1.UnitTests")] - // Don't run tests in parallel. [assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/tests/Avalonia.RenderTests/.gitignore b/tests/Avalonia.RenderTests/.gitignore deleted file mode 100644 index 76146e97c7..0000000000 --- a/tests/Avalonia.RenderTests/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -obj-Skia/ -obj-Skia/* \ No newline at end of file diff --git a/tests/Avalonia.RenderTests/Avalonia.RenderTests.projitems b/tests/Avalonia.RenderTests/Avalonia.RenderTests.projitems deleted file mode 100644 index ff729a6b48..0000000000 --- a/tests/Avalonia.RenderTests/Avalonia.RenderTests.projitems +++ /dev/null @@ -1,33 +0,0 @@ - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - true - 48840edd-24bf-495d-911e-2eb12ae75d3b - - - Avalonia.RenderTests - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tests/Avalonia.RenderTests/Avalonia.RenderTests.shproj b/tests/Avalonia.RenderTests/Avalonia.RenderTests.shproj deleted file mode 100644 index e3bed80491..0000000000 --- a/tests/Avalonia.RenderTests/Avalonia.RenderTests.shproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - 48840edd-24bf-495d-911e-2eb12ae75d3b - 14.0 - - - - - - - - - - - \ No newline at end of file diff --git a/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs b/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs index a5d06a1b0e..80b850635d 100644 --- a/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs +++ b/tests/Avalonia.RenderTests/Controls/TextBlockTests.cs @@ -1,6 +1,7 @@ // Copyright (c) The Avalonia Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. +using System.Threading.Tasks; using Avalonia.Controls; using Avalonia.Layout; using Avalonia.Media; @@ -20,7 +21,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls } [Fact] - public void Wrapping_NoWrap() + public async Task Wrapping_NoWrap() { Decorator target = new Decorator { @@ -38,7 +39,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls } }; - RenderToFile(target); + await RenderToFile(target); CompareImages(); } } diff --git a/tests/Avalonia.RenderTests/Properties/AssemblyInfo.cs b/tests/Avalonia.RenderTests/Properties/AssemblyInfo.cs index d5ba64ac05..a462e5b079 100644 --- a/tests/Avalonia.RenderTests/Properties/AssemblyInfo.cs +++ b/tests/Avalonia.RenderTests/Properties/AssemblyInfo.cs @@ -4,7 +4,5 @@ using System.Reflection; using Xunit; -[assembly: AssemblyTitle("Avalonia.Direct2D1.RenderTests")] - // Don't run tests in parallel. [assembly: CollectionBehavior(DisableTestParallelization = true)] \ No newline at end of file diff --git a/tests/Avalonia.RenderTests/TestBase.cs b/tests/Avalonia.RenderTests/TestBase.cs index cf38ef3818..321dbc4fbe 100644 --- a/tests/Avalonia.RenderTests/TestBase.cs +++ b/tests/Avalonia.RenderTests/TestBase.cs @@ -46,7 +46,8 @@ namespace Avalonia.Direct2D1.RenderTests public TestBase(string outputPath) { - var testFiles = Path.GetFullPath(@"..\..\..\..\..\TestFiles\"); + var testPath = GetTestsDirectory(); + var testFiles = Path.Combine(testPath, "TestFiles"); #if AVALONIA_SKIA var platform = "Skia"; #else @@ -142,6 +143,18 @@ namespace Avalonia.Direct2D1.RenderTests } } + private string GetTestsDirectory() + { + var path = Directory.GetCurrentDirectory(); + + while (path.Length > 0 && Path.GetFileName(path) != "tests") + { + path = Path.GetDirectoryName(path); + } + + return path; + } + private class TestThreadingInterface : IPlatformThreadingInterface { public bool CurrentThreadIsLoopThread => MainThread.ManagedThreadId == Thread.CurrentThread.ManagedThreadId; diff --git a/tests/Avalonia.RenderTests/Avalonia.Skia.RenderTests.csproj b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj similarity index 69% rename from tests/Avalonia.RenderTests/Avalonia.Skia.RenderTests.csproj rename to tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj index 370cfac6dd..4a297a340d 100644 --- a/tests/Avalonia.RenderTests/Avalonia.Skia.RenderTests.csproj +++ b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj @@ -1,21 +1,10 @@ - - - obj-Skia - - - - + netcoreapp2.0 - bin\Skia\$(Configuration) - false - False - $(DefineConstants);AVALONIA_SKIA;AVALONIA_SKIA_SKIP_FAIL - Library + AVALONIA_SKIA;AVALONIA_SKIA_SKIP_FAIL - - + @@ -35,9 +24,6 @@ - - - \ No newline at end of file diff --git a/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs b/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs index 3f7e353749..b046910f34 100644 --- a/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs +++ b/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs @@ -31,17 +31,6 @@ namespace Avalonia.Visuals.UnitTests.Media Assert.True(raised); } - [Fact] - public void Old_PlatformImpl_Is_Disposed_When_Updated() - { - var target = new TestGeometry(); - var platformImpl = target.PlatformImpl; - - target.Foo = true; - - Mock.Get(platformImpl).Verify(x => x.Dispose()); - } - [Fact] public void Setting_Transform_Causes_Changed_To_Be_Raised() { diff --git a/tests/TestFiles/Cairo/SVGPath/SVGPath.expected.png b/tests/TestFiles/Cairo/SVGPath/SVGPath.expected.png deleted file mode 100644 index 9830048810..0000000000 Binary files a/tests/TestFiles/Cairo/SVGPath/SVGPath.expected.png and /dev/null differ diff --git a/tests/TestFiles/Skia/Controls/TextBlock/Wrapping_NoWrap.expected.png b/tests/TestFiles/Skia/Controls/TextBlock/Wrapping_NoWrap.expected.png new file mode 100644 index 0000000000..2296e02d68 Binary files /dev/null and b/tests/TestFiles/Skia/Controls/TextBlock/Wrapping_NoWrap.expected.png differ diff --git a/tools/packages.config b/tools/packages.config index e0dd39bd2b..e52a2c7e98 100644 --- a/tools/packages.config +++ b/tools/packages.config @@ -1,4 +1,4 @@ - +