Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix build and test stability #294

Merged
merged 44 commits into from
Jun 13, 2018
Merged

Fix build and test stability #294

merged 44 commits into from
Jun 13, 2018

Conversation

yfakariya
Copy link
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.
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