-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
[dev innerloop] build runtime tests without CoreCLR #58266
Comments
Tagging subscribers to this area: @hoyosjs Issue DetailsMake it possible to build and run the tests using Mono, without building all of CoreCLR. In principle the runtime tests infrastructure only needs
Stretch goal:
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure Issue DetailsMake it possible to build and run the tests using Mono, without building all of CoreCLR. In principle the runtime tests infrastructure only needs
Stretch goal:
|
This could also benefit the CI pipelines although actually cleaning up the CI dependencies could be done separately after the initial work of just teasing apart the build dependencies is completed. |
@lambdageek, a side question (in case you know it offhand 🙂), do we have any direct dev innerloop script for mono that {re}builds 'just' the native components and entirely skips .NET SDK / MSBuild? e.g. in case of non-mono subsets, we can use: OSName=banana
OSArch=apricotarch
ROOTFS_DIR=/crossrootfs/$OSArch
export ROOTFS_DIR
# coreclr
/runtime/src/coreclr/build-runtime.sh -skipgenerateversion -skipmanaged -nopgooptimize \
-os $OSName -cross -$OSArch
# libraries/native
/runtime/src/libraries/Native/build-native.sh -skipgenerateversion -skipmanaged -os $OSName \
-cross -$OSArch
# corehost (dotnet(1) etc.) is currently a bit mouthful
/runtime/src/native/corehost/build.sh -skipmanaged -skipgenerateversion -os $OSName -cross -$OSArch \
-policyver 0.0.1-dev -fxrver 0.0.1-dev -hostver 0.0.1-dev -apphostver 0.0.1-dev \
-commithash $(git -C /runtime rev-parse HEAD) (these are also useful to build stage 0 on new platforms natively, where .NET SDK is not yet available and crossbuild is not yet configured) |
I think @vargaz just runs cmake directly. I don't think we have any scripts to simplify it. |
New tests that extend the System.Private.CoreLib API should add to the ref assemblies in src/libraries and the tests themselves should be library tests. Updated the workflow doc: the Clr.Native subset is all that is need if we're interested in testing Mono. Contributes to #58266 * [tests] Use RuntimeFlavor to build ReferenceSystemPrivateCoreLib tests When building tests that reference System.Private.CoreLib, use the one from the specified RuntimeFlavor (or fall back to coreclr if it's unset - although src/tests/build.sh sets it always) * Update docs: We only need to build the Clr.Native subset if we're interested in testing Mono. * flavor the pipelines to build the runtime-specific System.Private.CoreLib for the runtime tests. * Don't build ReferenceSystemPrivateCoreLib tests with Mono We should avoid adding new ReferenceSystemPrivateCoreLib tests
@trylek is this something you are looking into? |
Not directly right now - the test refactoring we're working on with Jeremy might simplify overall testing infrastructure including Mono though. For this particular change, yesterday I reviewed Nathan's PR 62500 (see link above) that seems to be contributing to the efforts tracked by this issue. |
@lambdageek Wasm never depended on coreclr in the first place, since it was using the global-build-job.yml. I don't think android and iOS did either, but I am looking at the runtime templates and it is hard to make out. But yes, if they did it should be fixed now. It probably makes sense to move all mono runs to use global-build-job. |
I don't know any of the consequences of that, but it sounds good, and if you think it's a good idea, go for it. 😁 |
We have #45521 to track that work. |
@naricc -- Assigning this to you and moving to 8.0.0 I believe the 3 remaining items are related to your open PR. |
Make it possible to build and run the tests using Mono, without building all of CoreCLR. In principle the runtime tests infrastructure only needs
corerun
(andilasm
- but I think that can already be built from a separate subset)clr.hosts
subset for working with runtime tests #62581PatchCoreClrCoreRoot
/RestoreCoreClrCoreRoot
targets from mono.proj as part of the monthly infrastructure rollout.The text was updated successfully, but these errors were encountered: