From 68df661e6318cb6f3ab35279c549410183cccc59 Mon Sep 17 00:00:00 2001 From: Kuba Ober Date: Tue, 3 Sep 2019 12:08:39 -0400 Subject: [PATCH 1/6] Use embedded resources. --- .../UnitTest1.capnp.bin | Bin .../UnitTest10.capnp.bin | Bin .../UnitTest11.capnp.bin | Bin .../UnitTest2.capnp.bin | Bin .../UnitTest20.capnp.bin | Bin .../UnitTest3.capnp.bin | Bin .../UnitTest4.capnp.bin | Bin .../schema-with-offsets.capnp.bin | Bin .../FeatureSteps/CodeGeneratorSteps.cs | 5 +- .../Properties/Resources.Designer.cs | 143 ----------------- capnpc-csharp.tests/Properties/Resources.resx | 145 ------------------ capnpc-csharp.tests/Resources/test.capnp.bin | Bin 141680 -> 0 bytes capnpc-csharp.tests/UnitTests.cs | 28 ++-- .../capnpc-csharp.tests.csproj | 24 +-- 14 files changed, 24 insertions(+), 321 deletions(-) rename capnpc-csharp.tests/{Resources => Embedded Resources}/UnitTest1.capnp.bin (100%) rename capnpc-csharp.tests/{Resources => Embedded Resources}/UnitTest10.capnp.bin (100%) rename capnpc-csharp.tests/{Resources => Embedded Resources}/UnitTest11.capnp.bin (100%) rename capnpc-csharp.tests/{Resources => Embedded Resources}/UnitTest2.capnp.bin (100%) rename capnpc-csharp.tests/{Resources => Embedded Resources}/UnitTest20.capnp.bin (100%) rename capnpc-csharp.tests/{Resources => Embedded Resources}/UnitTest3.capnp.bin (100%) rename capnpc-csharp.tests/{Resources => Embedded Resources}/UnitTest4.capnp.bin (100%) rename capnpc-csharp.tests/{Resources => Embedded Resources}/schema-with-offsets.capnp.bin (100%) delete mode 100644 capnpc-csharp.tests/Properties/Resources.Designer.cs delete mode 100644 capnpc-csharp.tests/Properties/Resources.resx delete mode 100644 capnpc-csharp.tests/Resources/test.capnp.bin diff --git a/capnpc-csharp.tests/Resources/UnitTest1.capnp.bin b/capnpc-csharp.tests/Embedded Resources/UnitTest1.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/UnitTest1.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/UnitTest1.capnp.bin diff --git a/capnpc-csharp.tests/Resources/UnitTest10.capnp.bin b/capnpc-csharp.tests/Embedded Resources/UnitTest10.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/UnitTest10.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/UnitTest10.capnp.bin diff --git a/capnpc-csharp.tests/Resources/UnitTest11.capnp.bin b/capnpc-csharp.tests/Embedded Resources/UnitTest11.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/UnitTest11.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/UnitTest11.capnp.bin diff --git a/capnpc-csharp.tests/Resources/UnitTest2.capnp.bin b/capnpc-csharp.tests/Embedded Resources/UnitTest2.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/UnitTest2.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/UnitTest2.capnp.bin diff --git a/capnpc-csharp.tests/Resources/UnitTest20.capnp.bin b/capnpc-csharp.tests/Embedded Resources/UnitTest20.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/UnitTest20.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/UnitTest20.capnp.bin diff --git a/capnpc-csharp.tests/Resources/UnitTest3.capnp.bin b/capnpc-csharp.tests/Embedded Resources/UnitTest3.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/UnitTest3.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/UnitTest3.capnp.bin diff --git a/capnpc-csharp.tests/Resources/UnitTest4.capnp.bin b/capnpc-csharp.tests/Embedded Resources/UnitTest4.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/UnitTest4.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/UnitTest4.capnp.bin diff --git a/capnpc-csharp.tests/Resources/schema-with-offsets.capnp.bin b/capnpc-csharp.tests/Embedded Resources/schema-with-offsets.capnp.bin similarity index 100% rename from capnpc-csharp.tests/Resources/schema-with-offsets.capnp.bin rename to capnpc-csharp.tests/Embedded Resources/schema-with-offsets.capnp.bin diff --git a/capnpc-csharp.tests/FeatureSteps/CodeGeneratorSteps.cs b/capnpc-csharp.tests/FeatureSteps/CodeGeneratorSteps.cs index 366c0e3..4d3a893 100644 --- a/capnpc-csharp.tests/FeatureSteps/CodeGeneratorSteps.cs +++ b/capnpc-csharp.tests/FeatureSteps/CodeGeneratorSteps.cs @@ -1,5 +1,4 @@ -using capnpc_csharp.Tests.Properties; -using Microsoft.VisualStudio.TestTools.UnitTesting; +using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.IO; using System.Reflection; @@ -17,7 +16,7 @@ namespace capnpc_csharp.Tests bool _success; Exception _generateException; - Stream LoadResource(string name) + internal static Stream LoadResource(string name) { var assembly = Assembly.GetExecutingAssembly(); string[] names = assembly.GetManifestResourceNames(); diff --git a/capnpc-csharp.tests/Properties/Resources.Designer.cs b/capnpc-csharp.tests/Properties/Resources.Designer.cs deleted file mode 100644 index 336b474..0000000 --- a/capnpc-csharp.tests/Properties/Resources.Designer.cs +++ /dev/null @@ -1,143 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Dieser Code wurde von einem Tool generiert. -// Laufzeitversion:4.0.30319.42000 -// -// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn -// der Code erneut generiert wird. -// -//------------------------------------------------------------------------------ - -namespace capnpc_csharp.Tests.Properties { - using System; - - - /// - /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - /// - // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - 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() { - } - - /// - /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("capnpc_csharp.Tests.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] schema_with_offsets_capnp { - get { - object obj = ResourceManager.GetObject("schema_with_offsets_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] UnitTest1_capnp { - get { - object obj = ResourceManager.GetObject("UnitTest1_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] UnitTest10_capnp { - get { - object obj = ResourceManager.GetObject("UnitTest10_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] UnitTest11_capnp { - get { - object obj = ResourceManager.GetObject("UnitTest11_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] UnitTest2_capnp { - get { - object obj = ResourceManager.GetObject("UnitTest2_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] UnitTest20_capnp { - get { - object obj = ResourceManager.GetObject("UnitTest20_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] UnitTest3_capnp { - get { - object obj = ResourceManager.GetObject("UnitTest3_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] UnitTest4_capnp { - get { - object obj = ResourceManager.GetObject("UnitTest4_capnp", resourceCulture); - return ((byte[])(obj)); - } - } - } -} diff --git a/capnpc-csharp.tests/Properties/Resources.resx b/capnpc-csharp.tests/Properties/Resources.resx deleted file mode 100644 index b4ecfef..0000000 --- a/capnpc-csharp.tests/Properties/Resources.resx +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Resources\UnitTest10.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\UnitTest20.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\UnitTest3.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\UnitTest2.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\UnitTest1.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\schema-with-offsets.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\UnitTest11.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ..\Resources\UnitTest4.capnp.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/capnpc-csharp.tests/Resources/test.capnp.bin b/capnpc-csharp.tests/Resources/test.capnp.bin deleted file mode 100644 index 66c8d13757549b83eaaa4e2e4e1ff90e836ca0da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141680 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 new Generator.CodeGenerator(model, new Generator.GeneratorOptions()); - Run LoadAndGenerate(byte[] input, int? testNum = null) + Run LoadAndGenerate(string inputName, int? testNum = null) { var run = new Run(); - run.Model = Load(input); + run.Model = Load(inputName); run.CodeGen = NewGeneratorFor(run.Model); run.FirstFile = run.Model.FilesToGenerate.First(); run.Code = run.CodeGen.Transform(run.FirstFile); @@ -137,10 +137,10 @@ namespace CapnpC return null; } - static Model.SchemaModel Load(byte[] data) + static Model.SchemaModel Load(string inputName) { WireFrame segments; - var input = new MemoryStream(data); + var input = CodeGeneratorSteps.LoadResource(inputName); using (input) { segments = Framing.ReadSegments(input); diff --git a/capnpc-csharp.tests/capnpc-csharp.tests.csproj b/capnpc-csharp.tests/capnpc-csharp.tests.csproj index ebe9366..ce9a24e 100644 --- a/capnpc-csharp.tests/capnpc-csharp.tests.csproj +++ b/capnpc-csharp.tests/capnpc-csharp.tests.csproj @@ -23,7 +23,6 @@ - @@ -38,21 +37,14 @@ - - - - - True - True - Resources.resx - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - + + + + + + + + From ffd018b2a471073d5b6a6e9b81f7160bd11af100 Mon Sep 17 00:00:00 2001 From: Kuba Ober Date: Tue, 3 Sep 2019 12:12:20 -0400 Subject: [PATCH 2/6] Move unit tests to the capnpc_csharp.Tests namespace. --- capnpc-csharp.tests/UnitTests.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/capnpc-csharp.tests/UnitTests.cs b/capnpc-csharp.tests/UnitTests.cs index 9e92e5b..e2b80d5 100644 --- a/capnpc-csharp.tests/UnitTests.cs +++ b/capnpc-csharp.tests/UnitTests.cs @@ -1,15 +1,16 @@ -using capnpc_csharp.Tests; using Capnp; +using Model = CapnpC.Model; +using Generator = CapnpC.Generator; +using CodeGeneratorRequest = CapnpC.Schema.CodeGeneratorRequest; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Generic; -using System.IO; using System.Linq; -namespace CapnpC +namespace capnpc_csharp.Tests { [TestClass] - public class UnitTests + public class CodeGeneratorUnitTests { static readonly Dictionary GeneratedCode = new Dictionary(); @@ -146,7 +147,7 @@ namespace CapnpC segments = Framing.ReadSegments(input); } var dec = DeserializerState.CreateRoot(segments); - var reader = Schema.CodeGeneratorRequest.Reader.Create(dec); + var reader = CodeGeneratorRequest.Reader.Create(dec); var model = Model.SchemaModel.Create(reader); return model; } From 984ec6de341f86633a5f7e1b113a40a6cbd5aecd Mon Sep 17 00:00:00 2001 From: c80k Date: Tue, 3 Sep 2019 21:17:11 +0200 Subject: [PATCH 3/6] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index b97500b..9cdca75 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,7 @@ The overall deployment consists of two components: ### Code generator back end: Windows -Disclaimer: The mid-term goal is to provide the C# code generator backend as Chocolatey package. It turns out that setting up a correct package verification process (which is a requirement for package approval) requires more effort than expected. See [Issue: Not on Chocolatey](https://github.com/c80k/capnproto-dotnetcore/issues/6) for instructions on how to create and install the package locally. Read on to get an impression on how it's supposed to work in the future. - -The C# code generator back end will be available as [Chocolatey](https://chocolatey.org/) package. You may choose between two flavors: The portable version requires a .NET Core 2.1 (or higher) runtime or SDK (type `dotnet` at command line prompt to check whether you already have one). This is the recommended variant. To install, type +The C# code generator back end is available as [Chocolatey](https://chocolatey.org/) package. You may choose between two flavors: The portable version requires a .NET Core 2.1 (or higher) runtime or SDK (type `dotnet` at command line prompt to check whether you already have one). This is the recommended variant. To install, type ``` choco install capnpc-csharp From 1938f94a8d344bbeda7b9655a91de8f752b4bc35 Mon Sep 17 00:00:00 2001 From: c80k Date: Tue, 3 Sep 2019 21:20:03 +0200 Subject: [PATCH 4/6] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9cdca75..8497996 100644 --- a/README.md +++ b/README.md @@ -50,8 +50,9 @@ vcpkg install capnproto Solution/project structure is as follows: - Capnp.Net.sln contains three projects: * Capnp.Net.Runtime is the runtime implementation, a .NET assembly. - * capnpc-csharp is the compiler backend for C# language - * Capnp.Net.Runtime.Tests is an MS Unit Testing assembly, containing - you guessed it - the test suite + * capnpc-csharp is the generator backend for C# language. + * Capnp.Net.Runtime.Tests is an MS Unit Testing assembly, containing - you guessed it - the test suite. + * capnpc-csharp.tests contains the generator backend test suite. - CapnpCompatTest.sln compiles to a native x86 executable which depends on the original Cap'n Proto C++ implementation. It is (partially) required by the test suite for interoperability testing. ## Features From 014650d392b3e3a295643d8cf9f1f8adfeb52e1e Mon Sep 17 00:00:00 2001 From: c80k Date: Tue, 3 Sep 2019 21:20:36 +0200 Subject: [PATCH 5/6] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8497996..64d7101 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ vcpkg install capnproto ``` Solution/project structure is as follows: -- Capnp.Net.sln contains three projects: +- Capnp.Net.sln contains these projects: * Capnp.Net.Runtime is the runtime implementation, a .NET assembly. * capnpc-csharp is the generator backend for C# language. * Capnp.Net.Runtime.Tests is an MS Unit Testing assembly, containing - you guessed it - the test suite. From 58787a23d43a9c0b7ea4ff5df34279dcf599066f Mon Sep 17 00:00:00 2001 From: c80k Date: Tue, 3 Sep 2019 21:29:49 +0200 Subject: [PATCH 6/6] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 64d7101..db6030c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# capnproto-dotnetcore +# capnproto-dotnetcore [![Build status](https://ci.appveyor.com/api/projects/status/tx4jjl2etiqve2xg/branch/master?svg=true)](https://ci.appveyor.com/project/c80k/capnproto-dotnetcore/branch/master) + A Cap'n Proto implementation for .NET Standard 2.0 (credits to [lostinplace](https://github.com/lostinplace)) and .NET Core 2.1. ["Cap'n Proto is an insanely fast data interchange format and capability-based RPC system."](https://capnproto.org/) Whilst the original implementation is written in C++ there are several ports to other languages. This is a C# implementation for .NET Core.