Skip to content

Commit

Permalink
NativeAOT SuperPMI collections (#91037)
Browse files Browse the repository at this point in the history
* Initial superpmi.py work for nativeaot collections

* SPMI: Fix recording/replay of getExactClasses

* Feedback

* Use ilc-published

* Path fixes

* Will this work?

* Copy ilc-published and aotsdk to Core_Root. Update superpmi.py to reflect new paths

* Change yml

* Trying to add smoke_tests

* Building nativeaot tests in superpmi collect setup

* Do not check input_directory on nativeaot

* Exclude native folder

* Using .ilc.rsp files for superpmi.py nativeaot

* Fix input directory

* Making a copy of the rsp file

* Fixing up references. Fixed architecture switch.

* Fixing pinvokelist

* Fix build

* Cleanup. Stop overloading -assemblies to include ilc.rsp files, created a -ilc_rsps instead. Enable linux.

* Use paren

* Let us try to skipnative since CI linux does not like the CLR test component being built

* Revert skipnative

* Build only smoketests, which skips the CustomMain native build. Fixup some paths.

* Revert skipnative again...

* Fix linux path

* Add so.1 extension

* Feedback. Fix pmi libraries collections

* Include more file extensions for superpmi collections

* Fix yml

* Fix-up more file paths that are located within the test's directories

* Fix paths again

* Remove version

---------

Co-authored-by: Jakob Botsch Nielsen <jakob.botsch.nielsen@gmail.com>
  • Loading branch information
TIHan and jakobbotsch authored Sep 11, 2023
1 parent a6cf8d6 commit 02feed0
Show file tree
Hide file tree
Showing 6 changed files with 319 additions and 24 deletions.
17 changes: 17 additions & 0 deletions eng/pipelines/coreclr/superpmi-collect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,23 @@ extends:
liveLibrariesBuildConfig: Release
SuperPmiCollect: true

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/coreclr/templates/superpmi-collect-job.yml
buildConfig: checked
platforms:
- linux_arm64
- linux_x64
- windows_x64
- windows_arm64
helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
jobParameters:
testGroup: outerloop
liveLibrariesBuildConfig: Release
collectionType: nativeaot
collectionName: smoke_tests

#
# Collection of libraries test run: normal
# Libraries Test Run using Release libraries, and Checked CoreCLR
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/coreclr/templates/run-superpmi-collect-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ jobs:
- ${{ if eq(parameters.collectionName, 'libraries_tests') }}:
- name: InputDirectory
value: '$(Build.SourcesDirectory)/artifacts/tests/libraries/$(osGroup).$(archType).$(buildConfigUpper)'
- ${{ if eq(parameters.collectionName, 'smoke_tests') }}:
- name: InputDirectory
value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr/obj/${{ parameters.osGroup }}.${{ parameters.archType }}.$(buildConfigUpper)/Managed/nativeaot/SmokeTests'

workspace:
clean: all
Expand Down
11 changes: 10 additions & 1 deletion src/coreclr/scripts/superpmi-collect.proj
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,19 @@
<RunArguments></RunArguments>
</PropertyGroup>

<!-- Settings for input kind -->

<PropertyGroup Condition=" '$(CollectionType)' == 'nativeaot' ">
<InputKind>-ilc_rsps</InputKind>
</PropertyGroup>
<PropertyGroup Condition=" '$(CollectionType)' != 'nativeaot' ">
<InputKind>-assemblies</InputKind>
</PropertyGroup>

<!-- Define the Helix work item command and timeout for each collection type -->

<PropertyGroup Condition="'$(CollectionName)' != 'benchmarks' and '$(CollectionName)' != 'realworld'">
<WorkItemCommand>$(Python) $(SuperPMIDirectory)$(FileSeparatorChar)superpmi.py collect --clean -log_level DEBUG --$(CollectionType) $(PmiArguments) -assemblies $(AssembliesDirectoryOnHelix) -arch $(Architecture) -build_type $(BuildConfig) -core_root $(SuperPMIDirectory)</WorkItemCommand>
<WorkItemCommand>$(Python) $(SuperPMIDirectory)$(FileSeparatorChar)superpmi.py collect --clean -log_level DEBUG --$(CollectionType) $(PmiArguments) $(InputKind) $(AssembliesDirectoryOnHelix) -arch $(Architecture) -build_type $(BuildConfig) -core_root $(SuperPMIDirectory)</WorkItemCommand>
<WorkItemTimeout>2:00</WorkItemTimeout>
</PropertyGroup>

Expand Down
Loading

0 comments on commit 02feed0

Please sign in to comment.