Skip to content

Fix build and test stability - #294

Merged
yfakariya merged 44 commits into
masterfrom
fix/build-and-test-stability
Jun 13, 2018
Merged

Fix build and test stability#294
yfakariya merged 44 commits into
masterfrom
fix/build-and-test-stability

Conversation

@yfakariya

Copy link
Copy Markdown
Member

This PR fixes build and test stability mainly for Unity iOS.

Note that this PR also includes bug fix related to custom attribute handling.

.NET Standard 2.0 caused some dependency related error when we built iOS project.
This commit also refactor build script to use feature flags in build script too.
* Divide into smaller projects to prevent OOM of unit test apps.
* Enable linker option for Android experimentaly.
* Refactor csproj for maintenancibility.
Xamarin Android project system does not recognized linked resources in common
property files, so I copied them to each project files.
This commit also add deployment settings for all Xamarin Android test projects
in the solution file.
This commit changes Unity test build to use PlayMode test of Unity player
instead of hand-made test suite with source code import.
Add [Serializable] to custom culture.
Exclude FILETIME related tests because it is not supported in Unity.
This fix change [NonSerialized] attribute check from CustomAttributeData based
to FieldAttributes based.
This is required because nonserialized attribute is NOT custom attribute,
it is IL attribute, so some implementation does not return CustomAttributeData
for such "non-custom" attributes.
This commit fixes the issue that map keys order emitted by asymmetric
(serialization only) serializer are inconsistent across platform because they
are not sorted due to incorrect flow.
This commit also rename assets directory to asset directory to avoid troubles
of Unity Editor which attempts to open source root instead of project folder
because of existent of the assets folder.
This commit avoids Mono's Regex StackOverflowException for non IL2CPP Unity
builds and non AOT Xamarin builds.
yfakariya added 14 commits June 12, 2018 21:04
This fix reverts CustomAttributeData based approach to attribute instance based
approach because Unity's IL2CPP does not handle them correctly.
Also, this fix remove wrong comment because Unity's mono also returns -1 for
default value of Order. This may be default behavior.

Note that there is a difference between Silverlight and others because SL uses
Attribute instead of CustomAttributeData, so:
* NilImplication is returned as is instead of its underlying primitive(Int32).
* Id is returned from the property instead of constructor arguments.
@yfakariya
yfakariya merged commit b4736c9 into master Jun 13, 2018
@yfakariya
yfakariya deleted the fix/build-and-test-stability branch June 13, 2018 23:08
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