Skip to content

Commit d8eecb7

Browse files
Run trimming tests as AOT tests (#101229)
Not everything is passing, so I baselined this. Some we'll probably exclude permanently, others are more concerning and we need to determine if it's test issues or product issues.
1 parent 4810ba1 commit d8eecb7

File tree

13 files changed

+36
-34
lines changed

13 files changed

+36
-34
lines changed

Directory.Build.props

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -397,12 +397,10 @@
397397
<PropertyGroup Condition="$(MSBuildProjectFullPath.Contains('$([System.IO.Path]::DirectorySeparatorChar)tests$([System.IO.Path]::DirectorySeparatorChar)'))">
398398
<IsTestProject Condition="$(MSBuildProjectName.EndsWith('.UnitTests')) or $(MSBuildProjectName.EndsWith('.Tests'))">true</IsTestProject>
399399
<IsTrimmingTestProject Condition="$(MSBuildProjectName.EndsWith('.TrimmingTests'))">true</IsTrimmingTestProject>
400-
<IsNativeAotTestProject Condition="$(MSBuildProjectName.EndsWith('.NativeAotTests'))">true</IsNativeAotTestProject>
401-
<IsPublishedAppTestProject Condition="'$(IsTrimmingTestProject)' == 'true' or '$(IsNativeAotTestProject)' == 'true'">true</IsPublishedAppTestProject>
402-
<IsTestSupportProject Condition="'$(IsTestProject)' != 'true' and '$(IsPublishedAppTestProject)' != 'true'">true</IsTestSupportProject>
400+
<IsTestSupportProject Condition="'$(IsTestProject)' != 'true' and '$(IsTrimmingTestProject)' != 'true'">true</IsTestSupportProject>
403401

404402
<!-- Treat test assemblies as non-shipping (do not publish or sign them). -->
405-
<IsShipping Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsPublishedAppTestProject)' == 'true'">false</IsShipping>
403+
<IsShipping Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsTrimmingTestProject)' == 'true'">false</IsShipping>
406404
</PropertyGroup>
407405

408406
<PropertyGroup>
@@ -413,7 +411,7 @@
413411
'$(IsReferenceAssemblyProject)' != 'true' and
414412
'$(IsGeneratorProject)' != 'true' and
415413
'$(IsTestProject)' != 'true' and
416-
'$(IsPublishedAppTestProject)' != 'true' and
414+
'$(IsTrimmingTestProject)' != 'true' and
417415
'$(IsTestSupportProject)' != 'true' and
418416
'$(UsingMicrosoftDotNetSharedFrameworkSdk)' != 'true' and
419417
'$(MSBuildProjectExtension)' != '.pkgproj' and
@@ -464,7 +462,7 @@
464462
</PropertyGroup>
465463

466464
<!-- Warnings that should be disabled in our test projects. -->
467-
<PropertyGroup Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsPublishedAppTestProject)' == 'true'">
465+
<PropertyGroup Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsTrimmingTestProject)' == 'true'">
468466
<!-- we need to re-enable BinaryFormatter within test projects since some tests exercise these code paths to ensure compat -->
469467
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
470468
<!-- don't warn on usage of BinaryFormatter or legacy serialization infrastructure from test projects -->

eng/pipelines/coreclr/nativeaot-post-build-steps.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,3 @@ steps:
2121
nativeAotTest: true
2222
helixQueues: ${{ parameters.helixQueues }}
2323
liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
24-
25-
# Can't run arm/arm64 tests on x64 build machines
26-
- ${{ if and(ne(parameters.archType, 'arm'), ne(parameters.archType, 'arm64')) }}:
27-
28-
# Publishing tooling doesn't support different configs between runtime and libs, so only run tests in Release config
29-
- ${{ if eq(parameters.buildConfig, 'release') }}:
30-
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) -s libs.tests -c $(_BuildConfig) $(crossArg) $(_nativeSanitizersArg) /p:TestAssemblies=false /p:RunNativeAotTestApps=true $(_officialBuildParameter) /bl:$(Build.SourcesDirectory)/artifacts/log/$(buildConfigUpper)/NativeAotTests.binlog ${{ parameters.extraTestArgs }}
31-
displayName: Run NativeAot Library Tests
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
parameters:
22
archType: ''
33
extraTestArgs: ''
4+
runAotTests: true
45

56
steps:
67
# Execute tests
78
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) -s libs.tests -c $(_BuildConfig) $(crossArg) /p:TestAssemblies=false /p:TestTrimming=true $(_officialBuildParameter) /bl:$(Build.SourcesDirectory)/artifacts/log/$(buildConfigUpper)/TrimmingTests.binlog ${{ parameters.extraTestArgs }}
89
displayName: Run Trimming Tests
10+
11+
# Execute AOT test app tests
12+
- ${{ if eq(parameters.runAotTests, true) }}:
13+
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) -s libs.tests -c $(_BuildConfig) $(crossArg) /p:TestAssemblies=false /p:RunNativeAotTestApps=true $(_officialBuildParameter) /bl:$(Build.SourcesDirectory)/artifacts/log/$(buildConfigUpper)/NativeAotTestAppTests.binlog ${{ parameters.extraTestArgs }}
14+
displayName: Run Native AOT Test App Tests

eng/pipelines/runtime-linker-tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,4 @@ extends:
135135
- template: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
136136
parameters:
137137
extraTestArgs: '/p:WasmBuildNative=false'
138+
runAotTests: false

eng/testing/linker/SupportFiles/Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<!-- Suppress analyzer and trimming warnings as these are tests -->
1212
<EnableTrimAnalyzer>false</EnableTrimAnalyzer>
1313
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
14+
<SuppressAotAnalysisWarnings>true</SuppressAotAnalysisWarnings>
1415
<NoWarn>$(NoWarn);IL2121</NoWarn>
1516
</PropertyGroup>
1617
</Project>

eng/testing/linker/trimmingTests.props

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<Project>
22
<PropertyGroup>
3-
<TrimmingTestDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'trimmingTests'))</TrimmingTestDir>
3+
<TrimmingTestDir Condition="'$(TestTrimming)' == 'true'">$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'trimmingTests'))</TrimmingTestDir>
4+
<TrimmingTestDir Condition="'$(RunNativeAotTestApps)' == 'true'">$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'aotTests'))</TrimmingTestDir>
5+
46
<TrimmingTestProjectsDir>$([MSBuild]::NormalizeDirectory('$(TrimmingTestDir)', 'projects'))</TrimmingTestProjectsDir>
57
<ProjectTemplate>$(MSBuildThisFileDirectory)project.csproj.template</ProjectTemplate>
68
<UseLocalAppHostPack>true</UseLocalAppHostPack>

eng/testing/linker/trimmingTests.targets

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,17 @@
8181
<_additionalPropertiesString>@(_propertiesAsItems->'&lt;%(Identity)&gt;%(Value)&lt;/%(Identity)&gt;', '%0a ')</_additionalPropertiesString>
8282
</PropertyGroup>
8383

84+
<!-- RunNativeAotTestApps trumps TestTrimming, same as PublishAot trumps PublishTrimmed, but it's very likely not what the user intended. -->
85+
<Error Condition="'$(RunNativeAotTestApps)' == 'true' and '$(TestTrimming)' == 'true'" Text="Not possible to test both IL trimming and AOT at the same time" />
86+
8487
<MakeDir Directories="$(_projectDir)" />
8588
<WriteLinesToFile File="$(_projectFile)"
8689
Lines="$([System.IO.File]::ReadAllText('$(ProjectTemplate)')
8790
.Replace('{TargetFramework}', '%(TestConsoleApps.TargetFramework)')
8891
.Replace('{NetCoreAppMaximumVersion}', '$(NetCoreAppMaximumVersion)')
8992
.Replace('{UseMonoRuntime}','$(UseMonoRuntime)')
9093
.Replace('{RuntimeIdentifier}','%(TestConsoleApps.TestRuntimeIdentifier)')
91-
.Replace('{PublishAot}','$(IsNativeAotTestProject)')
94+
.Replace('{PublishAot}','$(RunNativeAotTestApps)')
9295
.Replace('{ExtraTrimmerArgs}', '%(TestConsoleApps.ExtraTrimmerArgs)')
9396
.Replace('{AdditionalProperties}', '$(_additionalPropertiesString)')
9497
.Replace('{ToolsILLinkDir}', '$(ToolsILLinkDir)')

src/libraries/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
</ItemGroup>
2626

2727
<Import Project="NetCoreAppLibrary.props" />
28-
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.props" Condition="'$(IsPublishedAppTestProject)' == 'true'" />
28+
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.props" Condition="'$(IsTrimmingTestProject)' == 'true'" />
2929

3030
<PropertyGroup>
3131
<!-- Default any assembly not specifying a key to use the Open Key -->

src/libraries/Directory.Build.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@
131131
<Import Project="$(RepositoryEngineeringDir)codeOptimization.targets" />
132132
<Import Project="$(RepositoryEngineeringDir)references.targets" />
133133
<Import Project="$(RepositoryEngineeringDir)testing\tests.targets" Condition="'$(EnableTestSupport)' == 'true'" />
134-
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.targets" Condition="'$(IsPublishedAppTestProject)' == 'true'" />
134+
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.targets" Condition="'$(IsTrimmingTestProject)' == 'true'" />
135135
<Import Project="$(RepositoryEngineeringDir)testing\runtimeConfiguration.targets" />
136136
<Import Project="$(RepositoryEngineeringDir)testing\runsettings.targets" Condition="'$(EnableRunSettingsSupport)' == 'true'" />
137137
<Import Project="$(RepositoryEngineeringDir)testing\coverage.targets" Condition="'$(EnableRunSettingsSupport)' == 'true' or '$(EnableCoverageSupport)' == 'true'" />

src/libraries/System.Diagnostics.DiagnosticSource/tests/NativeAotTests/System.Diagnostics.DiagnosticSource.NativeAotTests.proj

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)