Skip to content

Comments

ported avro c# to .net standard 2.0#4

Open
SidShetye wants to merge 7 commits intowelly87:masterfrom
SidShetye:netcore2
Open

ported avro c# to .net standard 2.0#4
SidShetye wants to merge 7 commits intowelly87:masterfrom
SidShetye:netcore2

Conversation

@SidShetye
Copy link

I have ported to .net standard 2.0 (somewhat!). There were several changes on the tooling side but some tests fail on all platforms while other only fail on Mac and Linux. I believe these tests failed before too so this doesn't fix those failures themselves - that's probably the next step and as the original author I'm hoping you're able to step in :)

You can simply run the test by dotnet test. On non-windows platforms you'll get this output

Build started, please wait...
Build started, please wait...
Build completed.

Test run for /Volumes/Data/projects/personal/github/Apache-Avro-Core/Avro/bin/Debug/netcoreapp2.0/Avro.dll(.NETCoreApp,Version=v2.0)
Microsoft (R) Test Execution Command Line Tool Version 15.5.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...

Build completed.

Test run for /Volumes/Data/projects/personal/github/Apache-Avro-Core/Avro.UnitTest/bin/Debug/netcoreapp2.0/Avro.UnitTest.dll(.NETCoreApp,Version=v2.0)
Microsoft (R) Test Execution Command Line Tool Version 15.5.0
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
NUnit Adapter 3.9.0.0: Test execution started
Running all tests in /Volumes/Data/projects/personal/github/Apache-Avro-Core/Avro.UnitTest/bin/Debug/netcoreapp2.0/Avro.UnitTest.dll
NUnit3TestExecutor converted 388 of 388 NUnit test cases
Failed   TestAliases("{\"type\":\"record\",\"name\":\"LongList\", \"namespace\":\"com\", \"aliases\":[\"c\",\"foo.y\"],\r\n                   \"fields\":\r\n                    [{\"name\":\"f1\",\"type\":\"long\", \"extraprop\":\"important\", \"id\":\"1029\", \"aliases\":[\"a\",\"b\",\"c\"] },\r\n                     {\"name\":\"f2\",\"type\": \"int\"}]}",True)
Error Message:
   Expected: False
  But was:  True

Stack Trace:
   at Avro.Test.AliasTest.TestAliases(String s, Boolean valid) in /Volumes/Data/projects/personal/github/Apache-Avro-Core/Avro.UnitTest/Schema/AliasTest.cs:line 79

Standard Output Messages:
 Unexpected character encountered while parsing value: i. Path 'fields[0].extraprop', line 1, position 130.

Failed   TestAliases("{\"type\":\"record\",\"name\":\"LongList\", \"aliases\":[\"Alias1\"], \"customprop\":\"123456\",\r\n                   \"fields\":[{\"name\":\"f1\",\"type\":\"long\", \"order\":\"ascending\", \"fprop\":\"faaa\" },\r\n                    {\"name\":\"f2\",\"type\": \"int\"}]}",True)
Error Message:
   Expected: False
  But was:  True

Stack Trace:
   at Avro.Test.AliasTest.TestAliases(String s, Boolean valid) in /Volumes/Data/projects/personal/github/Apache-Avro-Core/Avro.UnitTest/Schema/AliasTest.cs:line 79

Standard Output Messages:
 Error parsing boolean value. Path 'fields[0].fprop', line 1, position 103.

Failed   CanonicalTest
Error Message:
 System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> System.IO.DirectoryNotFoundException : Could not find a part of the path '/Volumes/Data/projects/personal/github/share/test/data/schema-tests.txt'.
Stack Trace:
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at NUnit.Framework.TestCaseSourceAttribute.GetTestCaseSource(IMethodInfo method)
   at NUnit.Framework.TestCaseSourceAttribute.GetTestCasesFor(IMethodInfo method)
--DirectoryNotFoundException
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
   at System.IO.StreamReader..ctor(String path)
   at System.IO.File.OpenText(String path)
   at Avro.Test.SchemaNormalizationTests.ProvideCanonicalTestCases() in /Volumes/Data/projects/personal/github/Apache-Avro-Core/Avro.UnitTest/Schema/SchemaNormalizationTests.cs:line 62
Failed   FingerprintTest
Error Message:
 System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
  ----> System.IO.DirectoryNotFoundException : Could not find a part of the path '/Volumes/Data/projects/personal/github/share/test/data/schema-tests.txt'.
Stack Trace:
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at NUnit.Framework.TestCaseSourceAttribute.GetTestCaseSource(IMethodInfo method)
   at NUnit.Framework.TestCaseSourceAttribute.GetTestCasesFor(IMethodInfo method)
--DirectoryNotFoundException
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)
   at System.IO.StreamReader..ctor(String path)
   at System.IO.File.OpenText(String path)
   at Avro.Test.SchemaNormalizationTests.ProvideFingerprintTestCases() in /Volumes/Data/projects/personal/github/Apache-Avro-Core/Avro.UnitTest/Schema/SchemaNormalizationTests.cs:line 53
Failed   TestEnumResolution("{\r\n  \"protocol\" : \"MyProtocol\",\r\n  \"namespace\" : \"com.foo\",\r\n  \"types\" : [ \r\n   {\r\n\t\"type\" : \"record\",\r\n\t\"name\" : \"A\",\r\n\t\"fields\" : [ { \"name\" : \"f1\", \"type\" : \"long\" } ]\r\n   },\r\n   {\r\n\t\"type\" : \"enum\",\r\n\t\"name\" : \"MyEnum\",\r\n\t\"symbols\" : [ \"A\", \"B\", \"C\" ]\r\n   },\r\n   {\r\n   \"type\": \"fixed\", \r\n   \"size\": 16, \r\n   \"name\": \"MyFixed\"\r\n   },\r\n   {\r\n\t\"type\" : \"record\",\r\n\t\"name\" : \"Z\",\r\n\t\"fields\" : \r\n\t\t\t[ \t\r\n\t\t\t\t{ \"name\" : \"myUInt\", \"type\" : [ \"int\", \"null\" ] },\r\n\t\t\t\t{ \"name\" : \"myULong\", \"type\" : [ \"long\", \"null\" ] },\r\n\t\t\t\t{ \"name\" : \"myUBool\", \"type\" : [ \"boolean\", \"null\" ] },\r\n\t\t\t\t{ \"name\" : \"myUDouble\", \"type\" : [ \"double\", \"null\" ] },\r\n\t\t\t\t{ \"name\" : \"myUFloat\", \"type\" : [ \"float\", \"null\" ] },\r\n\t\t\t\t{ \"name\" : \"myUBytes\", \"type\" : [ \"bytes\", \"null\" ] },\r\n\t\t\t\t{ \"name\" : \"myUString\", \"type\" : [ \"string\", \"null\" ] },\r\n\t\t\t\t\r\n\t\t\t\t{ \"name\" : \"myInt\", \"type\" : \"int\" },\r\n\t\t\t\t{ \"name\" : \"myLong\", \"type\" : \"long\" },\r\n\t\t\t\t{ \"name\" : \"myBool\", \"type\" : \"boolean\" },\r\n\t\t\t\t{ \"name\" : \"myDouble\", \"type\" : \"double\" },\r\n\t\t\t\t{ \"name\" : \"myFloat\", \"type\" : \"float\" },\r\n\t\t\t\t{ \"name\" : \"myBytes\", \"type\" : \"bytes\" },\r\n\t\t\t\t{ \"name\" : \"myString\", \"type\" : \"string\" },\r\n\t\t\t\t{ \"name\" : \"myNull\", \"type\" : \"null\" },\r\n\r\n\t\t\t\t{ \"name\" : \"myFixed\", \"type\" : \"MyFixed\" },\t\t\t\t\t\t\t\t\r\n\t\t\t\t{ \"name\" : \"myA\", \"type\" : \"A\" },\r\n\t\t\t\t{ \"name\" : \"myE\", \"type\" : \"MyEnum\" },\r\n\t\t\t\t{ \"name\" : \"myArray\", \"type\" : { \"type\" : \"array\", \"items\" : \"bytes\" } },\r\n\t\t\t\t{ \"name\" : \"myArray2\", \"type\" : { \"type\" : \"array\", \"items\" : { \"type\" : \"record\", \"name\" : \"newRec\", \"fields\" : [ { \"name\" : \"f1\", \"type\" : \"long\"} ] } } },\r\n\t\t\t\t{ \"name\" : \"myMap\", \"type\" : { \"type\" : \"map\", \"values\" : \"string\" } },\r\n\t\t\t\t{ \"name\" : \"myMap2\", \"type\" : { \"type\" : \"map\", \"values\" : \"newRec\" } },\r\n\t\t\t\t{ \"name\" : \"myObject\", \"type\" : [ \"MyEnum\", \"A\", \"null\" ] },\r\n                { \"name\" : \"myArray3\", \"type\" : { \"type\" : \"array\", \"items\" : { \"type\" : \"array\", \"items\" : [ \"double\", \"string\", \"null\" ] } } }\r\n\t\t\t]\r\n   } \r\n   ]\r\n}",System.Object[])
Error Message:
 Arguments provided for method with no parameters

Failed   TestOutput
Error Message:
 The sourceName specified on a TestCaseSourceAttribute must refer to a static field, property or method.

NUnit Adapter 3.9.0.0: Test execution complete

Total tests: 388. Passed: 382. Failed: 6. Skipped: 0.
Test execution time: 2.5940 Seconds

PS: In my repo, it's on the netcore2 branch but unsure about pull requests across branches

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant