From eb7c0104624016a41b1e288e0134ab7db7d3e75c Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 14:20:14 -0600 Subject: [PATCH 01/12] Retarget .Net Framework projects to 4.7 Works around dotnet/standard#567. --- build.cake | 2 +- samples/BindingTest/App.config | 2 +- samples/BindingTest/BindingTest.csproj | 2 +- samples/ControlCatalog.Desktop/App.config | 2 +- .../ControlCatalog.Desktop.csproj | 2 +- samples/RenderTest/App.config | 2 +- samples/RenderTest/RenderTest.csproj | 2 +- samples/VirtualizationTest/App.config | 2 +- .../VirtualizationTest.csproj | 2 +- .../Avalonia.Base.UnitTests.csproj | 2 +- tests/Avalonia.Benchmarks/App.config | 8 ++-- .../Avalonia.Benchmarks.csproj | 2 +- .../Avalonia.Controls.UnitTests.csproj | 2 +- .../App.config | 14 +++--- .../Avalonia.DesignerSupport.TestApp.csproj | 4 +- .../Properties/Resources.Designer.cs | 44 ++++++++----------- .../Properties/Settings.Designer.cs | 22 ++++------ .../Avalonia.DesignerSupport.Tests.csproj | 3 +- .../Avalonia.Direct2D1.UnitTests.csproj | 2 +- tests/Avalonia.Direct2D1.UnitTests/app.config | 12 ++--- .../Avalonia.Input.UnitTests.csproj | 2 +- .../Avalonia.Interactivity.UnitTests.csproj | 2 +- .../Avalonia.Layout.UnitTests.csproj | 2 +- .../Avalonia.LeakTests.csproj | 2 +- tests/Avalonia.LeakTests/app.config | 12 ++--- .../Avalonia.Markup.UnitTests.csproj | 2 +- .../Avalonia.Markup.Xaml.UnitTests.csproj | 2 +- .../Avalonia.Direct2D1.RenderTests.csproj | 2 +- .../Avalonia.Styling.UnitTests.csproj | 2 +- .../Avalonia.UnitTests.csproj | 2 +- .../Avalonia.Visuals.UnitTests.csproj | 2 +- 31 files changed, 78 insertions(+), 87 deletions(-) diff --git a/build.cake b/build.cake index eb5918832e..06ba84e27f 100644 --- a/build.cake +++ b/build.cake @@ -163,7 +163,7 @@ void RunCoreTest(string project, Parameters parameters, bool coreOnly = false) DotNetCoreRestore(project); var frameworks = new List(){"netcoreapp2.0"}; if(parameters.IsRunningOnWindows) - frameworks.Add("net461"); + frameworks.Add("net47"); foreach(var fw in frameworks) { if(!fw.StartsWith("netcoreapp") && coreOnly) diff --git a/samples/BindingTest/App.config b/samples/BindingTest/App.config index 373b3a13f8..538be69997 100644 --- a/samples/BindingTest/App.config +++ b/samples/BindingTest/App.config @@ -1,7 +1,7 @@ - + diff --git a/samples/BindingTest/BindingTest.csproj b/samples/BindingTest/BindingTest.csproj index 9f3fed5522..a17fe0eed1 100644 --- a/samples/BindingTest/BindingTest.csproj +++ b/samples/BindingTest/BindingTest.csproj @@ -9,7 +9,7 @@ Properties BindingTest BindingTest - v4.6.1 + v4.7 512 true diff --git a/samples/ControlCatalog.Desktop/App.config b/samples/ControlCatalog.Desktop/App.config index 68403e421f..cd4593817b 100644 --- a/samples/ControlCatalog.Desktop/App.config +++ b/samples/ControlCatalog.Desktop/App.config @@ -1,7 +1,7 @@ - + diff --git a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj index cfa2f89b0e..8a5959e361 100644 --- a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj +++ b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj @@ -9,7 +9,7 @@ Properties ControlCatalog.Desktop ControlCatalog.Desktop - v4.6.1 + v4.7 512 true diff --git a/samples/RenderTest/App.config b/samples/RenderTest/App.config index 68403e421f..cd4593817b 100644 --- a/samples/RenderTest/App.config +++ b/samples/RenderTest/App.config @@ -1,7 +1,7 @@ - + diff --git a/samples/RenderTest/RenderTest.csproj b/samples/RenderTest/RenderTest.csproj index 4a471a831a..b33d5d3c70 100644 --- a/samples/RenderTest/RenderTest.csproj +++ b/samples/RenderTest/RenderTest.csproj @@ -9,7 +9,7 @@ Properties RenderTest RenderTest - v4.6.1 + v4.7 512 true diff --git a/samples/VirtualizationTest/App.config b/samples/VirtualizationTest/App.config index 68403e421f..cd4593817b 100644 --- a/samples/VirtualizationTest/App.config +++ b/samples/VirtualizationTest/App.config @@ -1,7 +1,7 @@ - + diff --git a/samples/VirtualizationTest/VirtualizationTest.csproj b/samples/VirtualizationTest/VirtualizationTest.csproj index 147355aed1..0d498d827f 100644 --- a/samples/VirtualizationTest/VirtualizationTest.csproj +++ b/samples/VirtualizationTest/VirtualizationTest.csproj @@ -9,7 +9,7 @@ Properties VirtualizationTest VirtualizationTest - v4.6.1 + v4.7 512 true diff --git a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj index 8692cdef42..f8ec52a6c7 100644 --- a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj +++ b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library diff --git a/tests/Avalonia.Benchmarks/App.config b/tests/Avalonia.Benchmarks/App.config index 121e469348..425e308058 100644 --- a/tests/Avalonia.Benchmarks/App.config +++ b/tests/Avalonia.Benchmarks/App.config @@ -1,13 +1,13 @@ - + - + - - + + diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj index c16b89e0b6..d40dc596a5 100644 --- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj +++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj @@ -9,7 +9,7 @@ Properties Avalonia.Benchmarks Avalonia.Benchmarks - v4.6.1 + v4.7 512 true diff --git a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj index 8b2f5093cf..a63898486b 100644 --- a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj +++ b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library diff --git a/tests/Avalonia.DesignerSupport.TestApp/App.config b/tests/Avalonia.DesignerSupport.TestApp/App.config index 4fe7131d2a..baef7524af 100644 --- a/tests/Avalonia.DesignerSupport.TestApp/App.config +++ b/tests/Avalonia.DesignerSupport.TestApp/App.config @@ -1,18 +1,18 @@ - + - + - - + + - - + + - \ No newline at end of file + diff --git a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj index 7945915e8c..eaae82316e 100644 --- a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj +++ b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj @@ -9,9 +9,10 @@ Properties Avalonia.DesignerSupport.TestApp Avalonia.DesignerSupport.TestApp - v4.6.1 + v4.7 512 true + AnyCPU @@ -62,6 +63,7 @@ True Resources.resx + True Designer diff --git a/tests/Avalonia.DesignerSupport.TestApp/Properties/Resources.Designer.cs b/tests/Avalonia.DesignerSupport.TestApp/Properties/Resources.Designer.cs index a251d20120..28db9d4dcf 100644 --- a/tests/Avalonia.DesignerSupport.TestApp/Properties/Resources.Designer.cs +++ b/tests/Avalonia.DesignerSupport.TestApp/Properties/Resources.Designer.cs @@ -8,10 +8,10 @@ // //------------------------------------------------------------------------------ -namespace Avalonia.DesignerSupport.TestApp.Properties -{ - - +namespace Avalonia.DesignerSupport.TestApp.Properties { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -19,51 +19,43 @@ namespace Avalonia.DesignerSupport.TestApp.Properties // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - + internal class Resources { + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Avalonia.DesignerSupport.TestApp.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/tests/Avalonia.DesignerSupport.TestApp/Properties/Settings.Designer.cs b/tests/Avalonia.DesignerSupport.TestApp/Properties/Settings.Designer.cs index eaf8ac263a..15a90aaf18 100644 --- a/tests/Avalonia.DesignerSupport.TestApp/Properties/Settings.Designer.cs +++ b/tests/Avalonia.DesignerSupport.TestApp/Properties/Settings.Designer.cs @@ -8,21 +8,17 @@ // //------------------------------------------------------------------------------ -namespace Avalonia.DesignerSupport.TestApp.Properties -{ - - +namespace Avalonia.DesignerSupport.TestApp.Properties { + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.5.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { + + public static Settings Default { + get { return defaultInstance; } } diff --git a/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj b/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj index 477d44b99d..bc9a4b3e29 100644 --- a/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj +++ b/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj @@ -9,8 +9,9 @@ Properties Avalonia.DesignerSupport.Tests Avalonia.DesignerSupport.Tests - v4.6.1 + v4.7 512 + true diff --git a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj index 4b33d14243..303ebed001 100644 --- a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj +++ b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj @@ -9,7 +9,7 @@ Properties Avalonia.Direct2D1.UnitTests Avalonia.Direct2D1.UnitTests - v4.6.1 + v4.7 512 diff --git a/tests/Avalonia.Direct2D1.UnitTests/app.config b/tests/Avalonia.Direct2D1.UnitTests/app.config index 6af30494f2..e4df6c253e 100644 --- a/tests/Avalonia.Direct2D1.UnitTests/app.config +++ b/tests/Avalonia.Direct2D1.UnitTests/app.config @@ -1,15 +1,15 @@ - + - - + + - - + + - \ No newline at end of file + diff --git a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj b/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj index 98a1312782..1f66290dd9 100644 --- a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj +++ b/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library diff --git a/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj b/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj index 78d2128478..3fb2439af8 100644 --- a/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj +++ b/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library diff --git a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj index 0020ff46d9..ae6f4d463a 100644 --- a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj +++ b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library diff --git a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj index 46bd4ee324..7ecc3797ed 100644 --- a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj +++ b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj @@ -9,7 +9,7 @@ Properties Avalonia.LeakTests Avalonia.LeakTests - v4.6.1 + v4.7 512 diff --git a/tests/Avalonia.LeakTests/app.config b/tests/Avalonia.LeakTests/app.config index 01de951354..71e6d0a02e 100644 --- a/tests/Avalonia.LeakTests/app.config +++ b/tests/Avalonia.LeakTests/app.config @@ -1,15 +1,15 @@ - + - - + + - - + + - \ No newline at end of file + diff --git a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj index 5d3b04e24b..4db9bc45ad 100644 --- a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj +++ b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj index a3e4ad1418..02fbf23687 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library diff --git a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj index 445f8b0368..03f5233546 100644 --- a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj +++ b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj @@ -8,7 +8,7 @@ Properties Avalonia.Direct2D1.RenderTests Avalonia.Direct2D1.RenderTests - v4.6.1 + v4.7 512 diff --git a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj b/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj index ae12269e18..87d6e4504c 100644 --- a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj +++ b/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 Library CS0067 diff --git a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj index b04fd5d2bc..c879fe9c94 100644 --- a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj +++ b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 false Library diff --git a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj index 6dc9e3324d..74a48f9ce7 100644 --- a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj +++ b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj @@ -1,6 +1,6 @@  - net461;netcoreapp2.0 + net47;netcoreapp2.0 From bc3e3cb25dc098bc84e52da7c486354e6da0f90b Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 14:35:08 -0600 Subject: [PATCH 02/12] Update project file for Avalonia.UnitTests to use net47 instead of net461 --- tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj index c879fe9c94..24e335f46e 100644 --- a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj +++ b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj @@ -21,7 +21,7 @@ prompt 4 - + @@ -32,7 +32,7 @@ - + From abe1afbb01c1dd597696ae4fa6b7f4e8d3e7539b Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 19:03:16 -0600 Subject: [PATCH 03/12] Retarget base unit tests library (that is just included in tests) back to net461. --- tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj index 24e335f46e..c2580ec004 100644 --- a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj +++ b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj @@ -1,6 +1,6 @@  - net47;netcoreapp2.0 + net461;netcoreapp2.0 false Library @@ -21,7 +21,7 @@ prompt 4 - + @@ -32,8 +32,8 @@ - - + + From ee433f741e8b4c39e8db15f07fb7102bc22f3bd0 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 20:12:47 -0600 Subject: [PATCH 04/12] Update appveyor.yml --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index ba3680d0b9..746ded971d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -os: Previous Visual Studio 2017 +os: Visual Studio 2017 platform: - Any CPU skip_branch_with_pr: true @@ -22,7 +22,7 @@ install: before_build: - git submodule update --init build_script: -- ps: .\build.ps1 -Target "AppVeyor" -Platform "$env:platform" -Configuration "$env:configuration" +- ps: .\build.ps1 -Target "AppVeyor" -Platform "$env:platform" -Configuration "$env:configuration" -v Diagnostic test: off artifacts: From f72577cf92e0fc39d1e728b6f3feacb9d25f8321 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 21:03:23 -0600 Subject: [PATCH 05/12] Clean up test scripts --- appveyor.yml | 2 +- build.cake | 69 +++------- .../Resources/Resource.Designer.cs | 7 +- .../Avalonia.DesignerSupport.TestApp.csproj | 3 +- .../Avalonia.DesignerSupport.Tests.csproj | 3 +- .../Avalonia.Direct2D1.RenderTests.csproj | 125 ++++-------------- tests/Avalonia.RenderTests/TestBase.cs | 4 +- 7 files changed, 54 insertions(+), 159 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 746ded971d..76d1ae3e1c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -22,7 +22,7 @@ install: before_build: - git submodule update --init build_script: -- ps: .\build.ps1 -Target "AppVeyor" -Platform "$env:platform" -Configuration "$env:configuration" -v Diagnostic +- ps: .\build.ps1 -Target "AppVeyor" -Platform "$env:platform" -Configuration "$env:configuration" test: off artifacts: diff --git a/build.cake b/build.cake index 06ba84e27f..d321109a1e 100644 --- a/build.cake +++ b/build.cake @@ -143,8 +143,8 @@ Task("Build") settings.WithProperty("Platform", "\"" + parameters.Platform + "\""); settings.WithProperty("UseRoslynPathHack", "true"); settings.SetVerbosity(Verbosity.Minimal); - settings.WithProperty("Windows", "True"); settings.UseToolVersion(MSBuildToolVersion.VS2017); + settings.WithProperty("Windows", "True"); settings.SetNodeReuse(false); }); } @@ -178,8 +178,11 @@ void RunCoreTest(string project, Parameters parameters, bool coreOnly = false) } } -Task("Run-Net-Core-Unit-Tests") - .IsDependentOn("Clean") +Task("Run-Unit-Tests") + .IsDependentOn("Build") + .IsDependentOn("Run-Designer-Unit-Tests") + .IsDependentOn("Run-Render-Tests") + .WithCriteria(() => !parameters.SkipTests) .Does(() => { RunCoreTest("./tests/Avalonia.Base.UnitTests", parameters, false); RunCoreTest("./tests/Avalonia.Controls.UnitTests", parameters, false); @@ -190,56 +193,22 @@ Task("Run-Net-Core-Unit-Tests") RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", parameters, false); RunCoreTest("./tests/Avalonia.Styling.UnitTests", parameters, false); RunCoreTest("./tests/Avalonia.Visuals.UnitTests", parameters, false); - if(parameters.IsRunningOnWindows) - RunCoreTest("./tests/Avalonia.RenderTests/Avalonia.Skia.RenderTests.csproj", parameters, true); }); -Task("Run-Unit-Tests") - .IsDependentOn("Run-Net-Core-Unit-Tests") +Task("Run-Render-Tests") .IsDependentOn("Build") - //.IsDependentOn("Run-Leak-Tests") - .WithCriteria(() => !parameters.SkipTests) + .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); + }) + +Task("Run-Designer-Unit-Tests") + .IsDependentOn("Build") + .WithCriteria(() => !parameters.SkipTests && parameters.IsRunningOnWindows) .Does(() => { - if(!parameters.IsRunningOnWindows) - return; - - var unitTests = GetDirectories("./tests/Avalonia.*.UnitTests") - .Select(dir => System.IO.Path.GetFileName(dir.FullPath)) - .Where( name => !name.Contains("Skia")) // Run in the Run-Net-Core-Unit-Tests target - .Where(name => parameters.IsRunningOnWindows ? true : !name.Contains("Direct2D")) - .Select(name => MakeAbsolute(File("./tests/" + name + "/bin/" + parameters.DirSuffix + "/" + name + ".dll"))) - .ToList(); - - var toolPath = (parameters.IsPlatformAnyCPU || parameters.IsPlatformX86) ? - Context.Tools.Resolve("xunit.console.x86.exe") : - Context.Tools.Resolve("xunit.console.exe"); - - var xUnitSettings = new XUnit2Settings - { - ToolPath = toolPath, - Parallelism = ParallelismOption.None, - ShadowCopy = false - }; - - xUnitSettings.NoAppDomain = !parameters.IsRunningOnWindows; - - foreach(var test in unitTests.Where(testFile => FileExists(testFile))) - { - CopyDirectory(test.GetDirectory(), parameters.TestsRoot); - } - - var testsInDirectoryToRun = new List(); - if(parameters.IsRunningOnWindows) - { - testsInDirectoryToRun.AddRange(GetFiles("./artifacts/tests/*Tests.dll")); - } - else - { - testsInDirectoryToRun.AddRange(GetFiles("./artifacts/tests/*.UnitTests.dll")); - } - - XUnit2(testsInDirectoryToRun, xUnitSettings); + XUnit2(GetFiles("./artifacts/designer-tests/Avalonia.DesignerSupport.Tests.csproj"), xUnitSettings); }); Task("Copy-Files") @@ -427,7 +396,7 @@ Task("Default").Does(() => if(parameters.IsRunningOnWindows) RunTarget("Package"); else - RunTarget("Run-Net-Core-Unit-Tests"); + RunTarget("Run-Unit-Tests"); }); Task("AppVeyor") .IsDependentOn("Zip-Files") @@ -435,7 +404,7 @@ Task("AppVeyor") .IsDependentOn("Publish-NuGet"); Task("Travis") - .IsDependentOn("Run-Net-Core-Unit-Tests"); + .IsDependentOn("Run-Unit-Tests"); /////////////////////////////////////////////////////////////////////////////// // EXECUTE diff --git a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs index e66c2800d3..80cbbc51ec 100644 --- a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs +++ b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs @@ -40,14 +40,11 @@ namespace Avalonia.Android public partial class String { - // aapt resource value: 0x7f020002 - public static int ApplicationName = 2130837506; - // aapt resource value: 0x7f020001 - public static int Hello = 2130837505; + public static int ApplicationName = 2130837505; // aapt resource value: 0x7f020000 - public static int library_name = 2130837504; + public static int Hello = 2130837504; static String() { diff --git a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj index eaae82316e..fbbd5f0b28 100644 --- a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj +++ b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj @@ -13,13 +13,13 @@ 512 true + ..\..\artifacts\designer-tests\ AnyCPU true full false - ..\..\artifacts\tests\ DEBUG;TRACE prompt 4 @@ -28,7 +28,6 @@ AnyCPU pdbonly true - ..\..\artifacts\tests\ TRACE prompt 4 diff --git a/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj b/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj index bc9a4b3e29..4ce24e1d4c 100644 --- a/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj +++ b/tests/Avalonia.DesignerSupport.Tests/Avalonia.DesignerSupport.Tests.csproj @@ -12,12 +12,12 @@ v4.7 512 + ..\..\artifacts\designer-tests\ true full false - ..\..\artifacts\tests\ DEBUG;TRACE prompt 4 @@ -25,7 +25,6 @@ pdbonly true - ..\..\artifacts\tests\ TRACE prompt 4 diff --git a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj index 03f5233546..6af8fd8963 100644 --- a/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj +++ b/tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj @@ -1,106 +1,39 @@ - - + - Debug - AnyCPU - {DABFD304-D6A4-4752-8123-C2CCF7AC7831} - Library - Properties - Avalonia.Direct2D1.RenderTests - Avalonia.Direct2D1.RenderTests - v4.7 - 512 - - - - true - full - false - ..\..\artifacts\tests\ - DEBUG;TRACE - prompt - 4 - CS1591 + obj-Direct2D1 - - pdbonly - true - ..\..\artifacts\tests\ - TRACE - prompt - 4 + + + netcoreapp2.0 + bin\Direct2D\$(Configuration) + false + False + $(DefineConstants);AVALONIA_DIRECT2D + Library - - - - - - {D211E587-D8BC-45B9-95A4-F297C8FA5200} - Avalonia.Animation - - - {B09B78D8-9B26-48B0-9149-D64A2F120F3F} - Avalonia.Base - - - {D2221C82-4A25-4583-9B43-D791E3F6820C} - Avalonia.Controls - - - {3E908F67-5543-4879-A1DC-08EACE79B3CD} - Avalonia.Direct2D1 - - - {62024B2D-53EB-4638-B26B-85EEAA54866E} - Avalonia.Input - - - {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} - Avalonia.Interactivity - - - {42472427-4774-4C81-8AFF-9F27B8E31721} - Avalonia.Layout - - - {EB582467-6ABB-43A1-B052-E981BA910E3A} - Avalonia.Visuals - - - {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} - Avalonia.Styling - - - - + + - - 4.3.0 - + + + + + + + + + + + + + + + + - - - - - False - - - False - - - False - - - False - - - - - - - + \ No newline at end of file diff --git a/tests/Avalonia.RenderTests/TestBase.cs b/tests/Avalonia.RenderTests/TestBase.cs index 84860eefdb..dd6fcb1c06 100644 --- a/tests/Avalonia.RenderTests/TestBase.cs +++ b/tests/Avalonia.RenderTests/TestBase.cs @@ -46,9 +46,7 @@ namespace Avalonia.Direct2D1.RenderTests public TestBase(string outputPath) { -#if AVALONIA_CAIRO - string testFiles = Path.GetFullPath(@"..\..\tests\TestFiles\Cairo"); -#elif AVALONIA_SKIA +#if AVALONIA_SKIA string testFiles = Path.GetFullPath(@"..\..\..\..\..\TestFiles\Skia"); #else string testFiles = Path.GetFullPath(@"..\..\tests\TestFiles\Direct2D1"); From 4d9b354d1c36dde7283906205885f2d4b38e80f8 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 21:06:00 -0600 Subject: [PATCH 06/12] Fix cleaned tests-dir. --- build.cake | 2 +- parameters.cake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.cake b/build.cake index d321109a1e..46dd84d8b6 100644 --- a/build.cake +++ b/build.cake @@ -93,7 +93,7 @@ Task("Clean") CleanDirectory(parameters.NugetRoot); CleanDirectory(parameters.ZipRoot); CleanDirectory(parameters.BinRoot); - CleanDirectory(parameters.TestsRoot); + CleanDirectory(parameters.DesignerTestsRoot); }); Task("Restore-NuGet-Packages") diff --git a/parameters.cake b/parameters.cake index 7406618763..c727b3107f 100644 --- a/parameters.cake +++ b/parameters.cake @@ -30,7 +30,7 @@ public class Parameters public DirectoryPath NugetRoot { get; private set; } public DirectoryPath ZipRoot { get; private set; } public DirectoryPath BinRoot { get; private set; } - public DirectoryPath TestsRoot { get; private set; } + public DirectoryPath DesignerTestsRoot { get; private set; } public string DirSuffix { get; private set; } public string DirSuffixIOS { get; private set; } public DirectoryPathCollection BuildDirs { get; private set; } @@ -106,7 +106,7 @@ public class Parameters NugetRoot = ArtifactsDir.Combine("nuget"); ZipRoot = ArtifactsDir.Combine("zip"); BinRoot = ArtifactsDir.Combine("bin"); - TestsRoot = ArtifactsDir.Combine("tests"); + DesignerTestsRoot = ArtifactsDir.Combine("designer-tests"); BuildDirs = context.GetDirectories("**/bin") + context.GetDirectories("**/obj"); From ba95a9398dbebc460b358eda6dab3a124578ceb8 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 21:07:32 -0600 Subject: [PATCH 07/12] Add missing close paren in build script. --- build.cake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.cake b/build.cake index 46dd84d8b6..f59a68aee0 100644 --- a/build.cake +++ b/build.cake @@ -201,7 +201,7 @@ Task("Run-Render-Tests") .Does(() => { RunCoreTest("./tests/Avalonia.RenderTests/Avalonia.Skia.RenderTests.csproj", parameters, true); RunCoreTest("./tests/Avalonia.RenderTests/Avalonia.Direct2D1.RenderTests.csproj", parameters, true); - }) + }); Task("Run-Designer-Unit-Tests") .IsDependentOn("Build") From 5b8f906b1ee94b7db7e7dea641532bc94ef100bf Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 21:10:43 -0600 Subject: [PATCH 08/12] Add back xunit settings. --- build.cake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build.cake b/build.cake index f59a68aee0..f14ac20958 100644 --- a/build.cake +++ b/build.cake @@ -208,6 +208,13 @@ Task("Run-Designer-Unit-Tests") .WithCriteria(() => !parameters.SkipTests && parameters.IsRunningOnWindows) .Does(() => { + var xUnitSettings = new XUnit2Settings + { + ToolPath = toolPath, + Parallelism = ParallelismOption.None, + ShadowCopy = false, + }; + XUnit2(GetFiles("./artifacts/designer-tests/Avalonia.DesignerSupport.Tests.csproj"), xUnitSettings); }); From b502f48ff84116db413d2cdb3e52ad96bbdf7326 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 21:14:41 -0600 Subject: [PATCH 09/12] Make sure Direct2D1 Unit tests (non-render tests) run in the build. --- build.cake | 4 + .../Avalonia.Direct2D1.UnitTests.csproj | 107 +++--------------- 2 files changed, 21 insertions(+), 90 deletions(-) diff --git a/build.cake b/build.cake index f14ac20958..ca969d7fa8 100644 --- a/build.cake +++ b/build.cake @@ -193,6 +193,10 @@ Task("Run-Unit-Tests") RunCoreTest("./tests/Avalonia.Markup.Xaml.UnitTests", parameters, false); RunCoreTest("./tests/Avalonia.Styling.UnitTests", parameters, false); RunCoreTest("./tests/Avalonia.Visuals.UnitTests", parameters, false); + if (parameters.IsRunningOnWindows) + { + RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", parameters, false); + } }); Task("Run-Render-Tests") diff --git a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj index 303ebed001..f6b5d11af1 100644 --- a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj +++ b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj @@ -1,95 +1,22 @@ - - - + - Debug - AnyCPU - {EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} - Library - Properties - Avalonia.Direct2D1.UnitTests - Avalonia.Direct2D1.UnitTests - v4.7 - 512 - + net47;netcoreapp2.0 - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - {D211E587-D8BC-45B9-95A4-F297C8FA5200} - Avalonia.Animation - - - {B09B78D8-9B26-48B0-9149-D64A2F120F3F} - Avalonia.Base - - - {D2221C82-4A25-4583-9B43-D791E3F6820C} - Avalonia.Controls - - - {62024B2D-53EB-4638-B26B-85EEAA54866E} - Avalonia.Input - - - {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B} - Avalonia.Interactivity - - - {42472427-4774-4C81-8AFF-9F27B8E31721} - Avalonia.Layout - - - {EB582467-6ABB-43A1-B052-E981BA910E3A} - Avalonia.Visuals - - - {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F} - Avalonia.Styling - - - {3E908F67-5543-4879-A1DC-08EACE79B3CD} - Avalonia.Direct2D1 - - - - - + + + + + - + + + + + + + + + + - - \ No newline at end of file From fb8d2daa8ab6358c19ce719cf39ded13d18bfc5b Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 21:16:10 -0600 Subject: [PATCH 10/12] Add back toolPath. --- build.cake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build.cake b/build.cake index ca969d7fa8..7d612fcdea 100644 --- a/build.cake +++ b/build.cake @@ -195,7 +195,7 @@ Task("Run-Unit-Tests") RunCoreTest("./tests/Avalonia.Visuals.UnitTests", parameters, false); if (parameters.IsRunningOnWindows) { - RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", parameters, false); + RunCoreTest("./tests/Avalonia.Direct2D1.UnitTests", parameters, true); } }); @@ -212,6 +212,10 @@ Task("Run-Designer-Unit-Tests") .WithCriteria(() => !parameters.SkipTests && parameters.IsRunningOnWindows) .Does(() => { + var toolPath = (parameters.IsPlatformAnyCPU || parameters.IsPlatformX86) ? + Context.Tools.Resolve("xunit.console.x86.exe") : + Context.Tools.Resolve("xunit.console.exe"); + var xUnitSettings = new XUnit2Settings { ToolPath = toolPath, From 1c12cd4bd6cb2cd887065720094c5bbf60d66495 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Wed, 20 Dec 2017 23:31:33 -0600 Subject: [PATCH 11/12] Fix x64 builds of Avaloina.Direct2D1. Refactor build scripts to reduce time and fix issues. --- .gitignore | 2 ++ build.cake | 14 ++++---------- build/Unsafe.props | 5 +++++ packages.cake | 4 +++- .../Resources/Resource.Designer.cs | 7 +++++-- .../Avalonia.Direct2D1/Avalonia.Direct2D1.csproj | 2 ++ .../FramebufferShimRenderTarget.cs | 12 ++++++++---- .../Media/Imaging/WicBitmapImpl.cs | 10 ++++++++-- .../Avalonia.Win32/Interop/UnmanagedMethods.cs | 5 +---- tests/Avalonia.RenderTests/TestBase.cs | 7 ++++--- 10 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 build/Unsafe.props diff --git a/.gitignore b/.gitignore index e67d986a8a..a9a8fd36b4 100644 --- a/.gitignore +++ b/.gitignore @@ -176,3 +176,5 @@ nuget Avalonia.XBuild.sln project.lock.json .idea/* +**/obj-Skia/* +**/obj-Direct2D1/* diff --git a/build.cake b/build.cake index 7d612fcdea..61fda13695 100644 --- a/build.cake +++ b/build.cake @@ -124,14 +124,9 @@ Task("Restore-NuGet-Packages") void DotNetCoreBuild() { - DotNetCoreRestore("samples\\ControlCatalog.NetCore"); - DotNetBuild("samples\\ControlCatalog.NetCore"); + DotNetCoreBuild("samples\\ControlCatalog.NetCore"); } -Task("DotNetCoreBuild") - .IsDependentOn("Clean") - .Does(() => DotNetCoreBuild()); - Task("Build") .IsDependentOn("Restore-NuGet-Packages") .Does(() => @@ -140,9 +135,9 @@ Task("Build") { MSBuild(parameters.MSBuildSolution, settings => { settings.SetConfiguration(parameters.Configuration); + settings.SetVerbosity(Verbosity.Minimal); settings.WithProperty("Platform", "\"" + parameters.Platform + "\""); settings.WithProperty("UseRoslynPathHack", "true"); - settings.SetVerbosity(Verbosity.Minimal); settings.UseToolVersion(MSBuildToolVersion.VS2017); settings.WithProperty("Windows", "True"); settings.SetNodeReuse(false); @@ -160,7 +155,6 @@ void RunCoreTest(string project, Parameters parameters, bool coreOnly = false) if(!project.EndsWith(".csproj")) project = System.IO.Path.Combine(project, System.IO.Path.GetFileName(project)+".csproj"); Information("Running tests from " + project); - DotNetCoreRestore(project); var frameworks = new List(){"netcoreapp2.0"}; if(parameters.IsRunningOnWindows) frameworks.Add("net47"); @@ -215,7 +209,7 @@ Task("Run-Designer-Unit-Tests") var toolPath = (parameters.IsPlatformAnyCPU || parameters.IsPlatformX86) ? Context.Tools.Resolve("xunit.console.x86.exe") : Context.Tools.Resolve("xunit.console.exe"); - + var xUnitSettings = new XUnit2Settings { ToolPath = toolPath, @@ -223,7 +217,7 @@ Task("Run-Designer-Unit-Tests") ShadowCopy = false, }; - XUnit2(GetFiles("./artifacts/designer-tests/Avalonia.DesignerSupport.Tests.csproj"), xUnitSettings); + XUnit2("./artifacts/designer-tests/Avalonia.DesignerSupport.Tests.dll", xUnitSettings); }); Task("Copy-Files") diff --git a/build/Unsafe.props b/build/Unsafe.props new file mode 100644 index 0000000000..db96658bdd --- /dev/null +++ b/build/Unsafe.props @@ -0,0 +1,5 @@ + + + + + diff --git a/packages.cake b/packages.cake index bc290fce22..3c2f76205c 100644 --- a/packages.cake +++ b/packages.cake @@ -120,6 +120,7 @@ public class Packages var SharpDXDirect3D11Version = packageVersions["SharpDX.Direct3D11"].FirstOrDefault().Item1; var SharpDXDirect3D9Version = packageVersions["SharpDX.Direct3D9"].FirstOrDefault().Item1; var SharpDXDXGIVersion = packageVersions["SharpDX.DXGI"].FirstOrDefault().Item1; + var UnsafeVersion = packageVersions["System.Runtime.CompilerServices.Unsafe"].FirstOrDefault().Item1; context.Information("Package: Serilog, version: {0}", SerilogVersion); context.Information("Package: Sprache, version: {0}", SpracheVersion); @@ -394,7 +395,8 @@ public class Packages new NuSpecDependency() { Id = "SharpDX", Version = SharpDXVersion }, new NuSpecDependency() { Id = "SharpDX.Direct2D1", Version = SharpDXDirect2D1Version }, new NuSpecDependency() { Id = "SharpDX.Direct3D11", Version = SharpDXDirect3D11Version }, - new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion } + new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion }, + new NuSpecDependency() { Id = "System.Runtime.CompilerServices.Unsafe", Version = UnsafeVersion } }, Files = new [] { diff --git a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs index 80cbbc51ec..e66c2800d3 100644 --- a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs +++ b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs @@ -40,11 +40,14 @@ namespace Avalonia.Android public partial class String { + // aapt resource value: 0x7f020002 + public static int ApplicationName = 2130837506; + // aapt resource value: 0x7f020001 - public static int ApplicationName = 2130837505; + public static int Hello = 2130837505; // aapt resource value: 0x7f020000 - public static int Hello = 2130837504; + public static int library_name = 2130837504; static String() { diff --git a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj index a84c373886..2b9ce5466b 100644 --- a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj +++ b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj @@ -2,6 +2,7 @@ netstandard2.0 false + true @@ -25,4 +26,5 @@ + \ No newline at end of file diff --git a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs index 83bd4d2957..dbba7271e2 100644 --- a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs +++ b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Runtime.CompilerServices; using System.Text; using Avalonia.Controls.Platform.Surfaces; using Avalonia.Direct2D1.Media; @@ -67,10 +68,13 @@ namespace Avalonia.Direct2D1 { for (var y = 0; y < _target.Height; y++) { - UnmanagedMethods.CopyMemory( - _target.Address + _target.RowBytes * y, - l.Data.DataPointer + l.Stride * y, - (uint) Math.Min(l.Stride, _target.RowBytes)); + unsafe + { + Unsafe.CopyBlock( + (void*)(_target.Address + _target.RowBytes * y), + (void*)(l.Data.DataPointer + l.Stride * y), + (uint)Math.Min(l.Stride, _target.RowBytes)); + } } } Dispose(); diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs index 9b99b4c40a..540810f13c 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs @@ -3,6 +3,7 @@ using System; using System.IO; +using System.Runtime.CompilerServices; using Avalonia.Win32.Interop; using SharpDX.WIC; using APixelFormat = Avalonia.Platform.PixelFormat; @@ -74,8 +75,13 @@ namespace Avalonia.Direct2D1.Media { for (var row = 0; row < height; row++) { - UnmanagedMethods.CopyMemory(new IntPtr(l.Data.DataPointer.ToInt64() + row * l.Stride), - new IntPtr(data.ToInt64() + row * stride), (uint) l.Data.Pitch); + unsafe + { + Unsafe.CopyBlock( + (void*)(l.Data.DataPointer + row * l.Stride), + (void*)(data + row * stride), + (uint) l.Data.Pitch); + } } } } diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index fb4aefbf36..bc81010377 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -947,10 +947,7 @@ namespace Avalonia.Win32.Interop uint dwMaximumSizeHigh, uint dwMaximumSizeLow, string lpName); - - [DllImport("kernel32.dll", EntryPoint = "CopyMemory", SetLastError = false)] - public static extern void CopyMemory(IntPtr dest, IntPtr src, uint count); - + public enum MONITOR { MONITOR_DEFAULTTONULL = 0x00000000, diff --git a/tests/Avalonia.RenderTests/TestBase.cs b/tests/Avalonia.RenderTests/TestBase.cs index dd6fcb1c06..cf38ef3818 100644 --- a/tests/Avalonia.RenderTests/TestBase.cs +++ b/tests/Avalonia.RenderTests/TestBase.cs @@ -46,12 +46,13 @@ namespace Avalonia.Direct2D1.RenderTests public TestBase(string outputPath) { + var testFiles = Path.GetFullPath(@"..\..\..\..\..\TestFiles\"); #if AVALONIA_SKIA - string testFiles = Path.GetFullPath(@"..\..\..\..\..\TestFiles\Skia"); + var platform = "Skia"; #else - string testFiles = Path.GetFullPath(@"..\..\tests\TestFiles\Direct2D1"); + var platform = "Direct2D1"; #endif - OutputPath = Path.Combine(testFiles, outputPath); + OutputPath = Path.Combine(testFiles, platform, outputPath); threadingInterface.MainThread = Thread.CurrentThread; } From e462e0619348c3e4a949b8499b0c5c5aa82da16d Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Sat, 23 Dec 2017 13:51:11 -0600 Subject: [PATCH 12/12] Use memcpy instead of System.Runtime.CompilerServices.Unsafe --- build/Unsafe.props | 5 ----- packages.cake | 4 +--- .../Avalonia.Android/Resources/Resource.Designer.cs | 7 ++----- .../Avalonia.Direct2D1/Avalonia.Direct2D1.csproj | 2 -- .../Avalonia.Direct2D1/FramebufferShimRenderTarget.cs | 11 ++++------- .../Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs | 11 ++++------- .../Avalonia.Win32/Interop/UnmanagedMethods.cs | 3 +++ 7 files changed, 14 insertions(+), 29 deletions(-) delete mode 100644 build/Unsafe.props diff --git a/build/Unsafe.props b/build/Unsafe.props deleted file mode 100644 index db96658bdd..0000000000 --- a/build/Unsafe.props +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages.cake b/packages.cake index 3c2f76205c..bc290fce22 100644 --- a/packages.cake +++ b/packages.cake @@ -120,7 +120,6 @@ public class Packages var SharpDXDirect3D11Version = packageVersions["SharpDX.Direct3D11"].FirstOrDefault().Item1; var SharpDXDirect3D9Version = packageVersions["SharpDX.Direct3D9"].FirstOrDefault().Item1; var SharpDXDXGIVersion = packageVersions["SharpDX.DXGI"].FirstOrDefault().Item1; - var UnsafeVersion = packageVersions["System.Runtime.CompilerServices.Unsafe"].FirstOrDefault().Item1; context.Information("Package: Serilog, version: {0}", SerilogVersion); context.Information("Package: Sprache, version: {0}", SpracheVersion); @@ -395,8 +394,7 @@ public class Packages new NuSpecDependency() { Id = "SharpDX", Version = SharpDXVersion }, new NuSpecDependency() { Id = "SharpDX.Direct2D1", Version = SharpDXDirect2D1Version }, new NuSpecDependency() { Id = "SharpDX.Direct3D11", Version = SharpDXDirect3D11Version }, - new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion }, - new NuSpecDependency() { Id = "System.Runtime.CompilerServices.Unsafe", Version = UnsafeVersion } + new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion } }, Files = new [] { diff --git a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs index e66c2800d3..80cbbc51ec 100644 --- a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs +++ b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs @@ -40,14 +40,11 @@ namespace Avalonia.Android public partial class String { - // aapt resource value: 0x7f020002 - public static int ApplicationName = 2130837506; - // aapt resource value: 0x7f020001 - public static int Hello = 2130837505; + public static int ApplicationName = 2130837505; // aapt resource value: 0x7f020000 - public static int library_name = 2130837504; + public static int Hello = 2130837504; static String() { diff --git a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj index 2b9ce5466b..a84c373886 100644 --- a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj +++ b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj @@ -2,7 +2,6 @@ netstandard2.0 false - true @@ -26,5 +25,4 @@ - \ No newline at end of file diff --git a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs index dbba7271e2..523cfeed46 100644 --- a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs +++ b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs @@ -68,13 +68,10 @@ namespace Avalonia.Direct2D1 { for (var y = 0; y < _target.Height; y++) { - unsafe - { - Unsafe.CopyBlock( - (void*)(_target.Address + _target.RowBytes * y), - (void*)(l.Data.DataPointer + l.Stride * y), - (uint)Math.Min(l.Stride, _target.RowBytes)); - } + UnmanagedMethods.CopyMemory( + (_target.Address + _target.RowBytes * y), + (l.Data.DataPointer + l.Stride * y), + (UIntPtr)Math.Min(l.Stride, _target.RowBytes)); } } Dispose(); diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs index 540810f13c..371dfcfc3e 100644 --- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs +++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs @@ -75,13 +75,10 @@ namespace Avalonia.Direct2D1.Media { for (var row = 0; row < height; row++) { - unsafe - { - Unsafe.CopyBlock( - (void*)(l.Data.DataPointer + row * l.Stride), - (void*)(data + row * stride), - (uint) l.Data.Pitch); - } + UnmanagedMethods.CopyMemory( + (l.Data.DataPointer + row * l.Stride), + (data + row * stride), + (UIntPtr) l.Data.Pitch); } } } diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index bc81010377..a0518cf92e 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -947,6 +947,9 @@ namespace Avalonia.Win32.Interop uint dwMaximumSizeHigh, uint dwMaximumSizeLow, string lpName); + + [DllImport("msvcrt.dll", EntryPoint="memcpy", SetLastError = false, CallingConvention=CallingConvention.Cdecl)] + public static extern IntPtr CopyMemory(IntPtr dest, IntPtr src, UIntPtr count); public enum MONITOR {