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

Some unit tests (e.g. mscorlib) are too big to run in every configuration and needs to be split #18213

Closed
spouliot opened this issue Dec 16, 2019 · 3 comments · Fixed by #18228

Comments

@spouliot
Copy link
Contributor

Steps to Reproduce

This happens in different situations.

  1. Building mscorlib creates binaries that are too large for Apple's native linker, giving tons of build errors like:
00:40:50.1289540 /Users/xamarinqa/agent/_work/2/s/tests/xharness/tmp-test-dir/mscorlib358/obj/iPhone/Debug32/mtouch-cache/armv7/monotouch_corlib_xunit-test.dll.s(1448169,8): error GDC116A36: can not encode offset '0x100001C' in resulting scattered relocation. [/Users/xamarinqa/agent/_work/2/s/tests/xharness/tmp-test-dir/mscorlib358/mscorlib.csproj] 

logs from 2019-12: http://xamarin-storage/jenkins/xamarin-macios/pull-request/5fb8f4e3e574389acaff76cecf5766013cb8ef07/3321015/device-tests/jenkins-results/tests/index.html
tracking issue: https://github.com/xamarin/maccore/issues/2080

This also affects other tests but we can split them on our (macios) side.

  1. Building mscorlib unit tests w/release for tvOS -> warnings (so far)

This is due largely to bitcode being part of the output.

logs from 2019-12: http://xamarin-storage/jenkins/xamarin-macios/pull-request/5fb8f4e3e574389acaff76cecf5766013cb8ef07/3321016/device-tests/jenkins-results/tests/index.html
tracking issue: https://github.com/xamarin/maccore/issues/1896

Current Behavior

Warnings and build failures.

Expected Behavior

Build, without error, and execution of the tests.

On which platforms did you notice this

[x] iOS
[x] tvOS
[ ] macOS
[ ] Linux
[ ] Windows

Version Used:

2019-12 - but this existed before (it just becoming more common).

We used (before using pre-built tests binaries) to have mscorlib unit tests split into 2 assemblies (for watchOS). That worked well for us.

@spouliot
Copy link
Contributor Author

c.c. @SamMonoRT for 2019-12 integration

@mandel-macaque
Copy link
Member

Same issue happens with the dll monotouch_System.Core_xunit-test.dll which is too large and will give the same errors on 32b:

8:32:59.3083210 /Users/mandel/Xamarin/master/xamarin-macios/tests/xharness/tmp-test-dir/BCL tests group 5250/obj/iPhone/Debug32/mtouch-cache/armv7/monotouch_System.Core_xunit-test.dll.s(1464840,8): error GDC116A36: can not encode offset '0x1000040' in resulting scattered relocation. [/Users/mandel/Xamarin/master/xamarin-macios/tests/xharness/tmp-test-dir/BCL tests group 5250/BCL tests group 5.csproj]

@steveisok
Copy link
Contributor

@akoeplinger Is it fairly trivial to split up the test assemblies?

@akoeplinger akoeplinger self-assigned this Dec 17, 2019
akoeplinger added a commit to akoeplinger/mono that referenced this issue Dec 18, 2019
…h profiles

They cannot deal with large test assemblies so we need to split them.

We're doing this by introducing a new `#skip <PROFILE>` directive in the .sources format which defines where to split the assembly.
The logic is very simple: files up until the first `#skip` are common files which get included in each part, subsequent files are only in the respective part assembly.

Fixes mono#18213
akoeplinger added a commit that referenced this issue Dec 18, 2019
…h profiles (#18228)

They cannot deal with large test assemblies so we need to split them.

We're doing this by introducing a new `#skip <PROFILE>` directive in the .sources format which defines where to split the assembly.
The logic is very simple: files up until the first `#skip` are common files which get included in each part, subsequent files are only in the respective part assembly.

Fixes #18213
akoeplinger added a commit that referenced this issue Dec 18, 2019
…h profiles (#18228)

They cannot deal with large test assemblies so we need to split them.

We're doing this by introducing a new `#skip <PROFILE>` directive in the .sources format which defines where to split the assembly.
The logic is very simple: files up until the first `#skip` are common files which get included in each part, subsequent files are only in the respective part assembly.

Fixes #18213

(cherry picked from commit 3891fe9)
(cherry picked from commit a74416d)
akoeplinger added a commit that referenced this issue Dec 18, 2019
…h profiles (#18228)

They cannot deal with large test assemblies so we need to split them.

We're doing this by introducing a new `#skip <PROFILE>` directive in the .sources format which defines where to split the assembly.
The logic is very simple: files up until the first `#skip` are common files which get included in each part, subsequent files are only in the respective part assembly.

Fixes #18213

(cherry picked from commit 3891fe9)
(cherry picked from commit a74416d)
jonpryor added a commit to jonpryor/xamarin-android that referenced this issue Dec 19, 2019
Changes: mono/mono@9bcfa60...d56a0e7

Context: mono/mono#18137
Context: mono/mono#18213

  * mono/mono@d56a0e72c21 [System] Add additional hardening against race in MonoTlsStream (#18250)
  * mono/mono@9325d96ca37 [bcl] Split corlib and System.Core xunit test assemblies for monotouch profiles (#18228)
  * mono/mono@7e31b36d0d2 Bump msbuild to track mono-2019-10 (#18194)
  * mono/mono@8f396bbb408 [2019-10] [cominterop] Attach to runtime from IUnknown and IDispatch methods (#18186)
  * mono/mono@25f7937972f [sdks] Use Xcode 11.3 stable version for iOS/Mac SDKs
jonpryor added a commit to dotnet/android that referenced this issue Dec 20, 2019
Changes: mono/mono@9bcfa60...d56a0e7

Context: mono/mono#18137
Context: mono/mono#18213

  * mono/mono@d56a0e72c21 [System] Add additional hardening against race in MonoTlsStream (#18250)
  * mono/mono@9325d96ca37 [bcl] Split corlib and System.Core xunit test assemblies for monotouch profiles (#18228)
  * mono/mono@7e31b36d0d2 Bump msbuild to track mono-2019-10 (#18194)
  * mono/mono@8f396bbb408 [2019-10] [cominterop] Attach to runtime from IUnknown and IDispatch methods (#18186)
  * mono/mono@25f7937972f [sdks] Use Xcode 11.3 stable version for iOS/Mac SDKs
jonpryor pushed a commit to dotnet/android that referenced this issue Jan 30, 2020
Changes: mono/api-snapshot@6f14e43...8ea1d66

	$ git diff --shortstat 6f14e433...8ea1d663
	 21 files changed, 719 insertions(+), 444 deletions(-)

Changes: mono/boringssl@4ca62c5...d7b108e

	$ git diff --shortstat 4ca62c57...d7b108ee
	 1 file changed, 1 insertion(+)

Changes: dotnet/cecil@cb6c1ca...a6a7f5c

	$ git diff --shortstat cb6c1ca9...a6a7f5c0
	 47 files changed, 587 insertions(+), 444 deletions(-)

Changes: mono/corefx@10a41e9...5940515

	$ git diff --shortstat 10a41e9f...59405155
	 55 files changed, 1382 insertions(+), 369 deletions(-)

Changes: mono/mono@18920a8...2edccc5

	$ git diff --shortstat 18920a83...2edccc52
        1393 files changed, 44742 insertions(+), 90381 deletions(-)

Context: https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1005448
Context: https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1005448
Context: KSP-CKAN/CKAN#2881
Context: mono/mono#10559
Context: mono/mono#12249
Context: mono/mono#12337
Context: mono/mono#12995
Context: mono/mono#13777
Context: mono/mono#15006
Context: mono/mono#15010
Context: mono/mono#15181
Context: mono/mono#15805
Context: mono/mono#15845
Context: mono/mono#16026
Context: mono/mono#16206
Context: mono/mono#16410
Context: mono/mono#16513
Context: mono/mono#16557
Context: mono/mono#16588
Context: mono/mono#16632
Context: mono/mono#16701
Context: mono/mono#16778
Context: mono/mono#17053
Context: mono/mono#17084
Context: mono/mono#17133
Context: mono/mono#17151
Context: mono/mono#17161
Context: mono/mono#17190
Context: mono/mono#17278
Context: mono/mono#17278
Context: mono/mono#17317
Context: mono/mono#17367
Context: mono/mono#17389
Context: mono/mono#17546
Context: mono/mono#17549
Context: mono/mono#17569
Context: mono/mono#17601
Context: mono/mono#17665
Context: mono/mono#17687
Context: mono/mono#17737
Context: mono/mono#17790
Context: mono/mono#17869
Context: mono/mono#17878
Context: mono/mono#17916
Context: mono/mono#17924
Context: mono/mono#17926
Context: mono/mono#17931
Context: mono/mono#18213
Context: mono/mono#18221
Context: mono/mono#18273
Context: mono/mono#18276
Context: mono/mono#18317
Context: mono/mono#18388
Context: mono/mono#18455
jonpryor pushed a commit to dotnet/android that referenced this issue Mar 13, 2020
Changes: mono/api-snapshot@53a841f...5b8247e

	$ git diff --shortstat 53a841ff...5b8247e2
	 9 files changed, 572 insertions(+), 13 deletions(-)

Changes: mono/corefx@1cdb9c2...7c9e215

	$ git diff --shortstat 1cdb9c20...7c9e2158
	 24 files changed, 2393 insertions(+), 396 deletions(-)

Changes: dotnet/cecil@a6a7f5c...8021f3f

	$ git diff --shortstat a6a7f5c0...8021f3fb
	 16 files changed, 98 insertions(+), 25 deletions(-)

Changes: dotnet/linker@e8d054b...e1c7a72

	$ git diff --shortstat e8d054bf...e1c7a729
	 220 files changed, 9758 insertions(+), 3165 deletions(-)

Changes: mono/mono@2ff8988...d90665a

	$ git diff --shortstat 2ff89885...d90665a4
	 612 files changed, 20193 insertions(+), 10239 deletions(-)

Context: mono/mono#9726
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1048838
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1050615
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1069059
Context: mono/mono#10643
Context: mono/mono#10651
Context: mono/mono#12022
Context: mono/mono#12995
Context: mono/mono#15612
Context: mono/mono#16513
Context: mono/mono#16588
Context: mono/mono#16778
Context: mono/mono#16969
Context: mono/mono#17140
Context: mono/mono#17601
Context: mono/mono#17869
Context: mono/mono#17878
Context: mono/mono#17916
Context: mono/mono#17926
Context: mono/mono#17980
Context: mono/mono#18006
Context: mono/mono#18019
Context: mono/mono#18020
Context: mono/mono#18030
Context: mono/mono#18061
Context: mono/mono#18064
Context: mono/mono#18106
Context: mono/mono#18120
Context: mono/mono#18191
Context: mono/mono#18202
Context: mono/mono#18213
Context: mono/mono#18221
Context: mono/mono#18247
Context: mono/mono#18273
Context: mono/mono#18276
Context: mono/mono#18317
Context: mono/mono#18323
Context: mono/mono#18364
Context: mono/mono#18370
Context: mono/mono#18417
Context: mono/mono#18418
Context: mono/mono#18455
Context: mono/mono#18506
Context: mono/mono#18524
Context: mono/mono#18530
Context: mono/mono#18554
Context: mono/mono#18572
Context: mono/mono#18578
Context: mono/mono#18584
Context: mono/mono#18612
Context: mono/mono#18614
Context: mono/mono#18675
Context: mono/mono#18676
Context: mono/mono#18925
Context: mono/mono#19009
Context: https://issuetracker.unity3d.com/issues/unity-physics-collisions-do-not-work-and-errors-are-thrown-when-entering-play-mode
Context: https://xamarin.github.io/bugzilla-archives/20/20233/bug.html
jonpryor pushed a commit to dotnet/android that referenced this issue Mar 15, 2020
Changes: mono/api-snapshot@53a841f...5b8247e

	$ git diff --shortstat 53a841ff...5b8247e2
	 9 files changed, 572 insertions(+), 13 deletions(-)

Changes: mono/corefx@1cdb9c2...7c9e215

	$ git diff --shortstat 1cdb9c20...7c9e2158
	 24 files changed, 2393 insertions(+), 396 deletions(-)

Changes: dotnet/cecil@a6a7f5c...8021f3f

	$ git diff --shortstat a6a7f5c0...8021f3fb
	 16 files changed, 98 insertions(+), 25 deletions(-)

Changes: dotnet/linker@e8d054b...e1c7a72

	$ git diff --shortstat e8d054bf...e1c7a729
	 220 files changed, 9758 insertions(+), 3165 deletions(-)

Changes: mono/mono@2ff8988...d90665a

	$ git diff --shortstat 2ff89885...d90665a4
	 612 files changed, 20193 insertions(+), 10239 deletions(-)

Context: mono/mono#9726
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1048838
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1050615
Context: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1069059
Context: mono/mono#10643
Context: mono/mono#10651
Context: mono/mono#12022
Context: mono/mono#12995
Context: mono/mono#15612
Context: mono/mono#16513
Context: mono/mono#16588
Context: mono/mono#16778
Context: mono/mono#16969
Context: mono/mono#17140
Context: mono/mono#17601
Context: mono/mono#17869
Context: mono/mono#17878
Context: mono/mono#17916
Context: mono/mono#17926
Context: mono/mono#17980
Context: mono/mono#18006
Context: mono/mono#18019
Context: mono/mono#18020
Context: mono/mono#18030
Context: mono/mono#18061
Context: mono/mono#18064
Context: mono/mono#18106
Context: mono/mono#18120
Context: mono/mono#18191
Context: mono/mono#18202
Context: mono/mono#18213
Context: mono/mono#18221
Context: mono/mono#18247
Context: mono/mono#18273
Context: mono/mono#18276
Context: mono/mono#18317
Context: mono/mono#18323
Context: mono/mono#18364
Context: mono/mono#18370
Context: mono/mono#18417
Context: mono/mono#18418
Context: mono/mono#18455
Context: mono/mono#18506
Context: mono/mono#18524
Context: mono/mono#18530
Context: mono/mono#18554
Context: mono/mono#18572
Context: mono/mono#18578
Context: mono/mono#18584
Context: mono/mono#18612
Context: mono/mono#18614
Context: mono/mono#18675
Context: mono/mono#18676
Context: mono/mono#18925
Context: mono/mono#19009
Context: https://issuetracker.unity3d.com/issues/unity-physics-collisions-do-not-work-and-errors-are-thrown-when-entering-play-mode
Context: https://xamarin.github.io/bugzilla-archives/20/20233/bug.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants