mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-10 18:11:04 +09:00
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.
This commit is contained in:
parent
4810ba1bf0
commit
d8eecb714f
13 changed files with 36 additions and 34 deletions
|
@ -397,12 +397,10 @@
|
||||||
<PropertyGroup Condition="$(MSBuildProjectFullPath.Contains('$([System.IO.Path]::DirectorySeparatorChar)tests$([System.IO.Path]::DirectorySeparatorChar)'))">
|
<PropertyGroup Condition="$(MSBuildProjectFullPath.Contains('$([System.IO.Path]::DirectorySeparatorChar)tests$([System.IO.Path]::DirectorySeparatorChar)'))">
|
||||||
<IsTestProject Condition="$(MSBuildProjectName.EndsWith('.UnitTests')) or $(MSBuildProjectName.EndsWith('.Tests'))">true</IsTestProject>
|
<IsTestProject Condition="$(MSBuildProjectName.EndsWith('.UnitTests')) or $(MSBuildProjectName.EndsWith('.Tests'))">true</IsTestProject>
|
||||||
<IsTrimmingTestProject Condition="$(MSBuildProjectName.EndsWith('.TrimmingTests'))">true</IsTrimmingTestProject>
|
<IsTrimmingTestProject Condition="$(MSBuildProjectName.EndsWith('.TrimmingTests'))">true</IsTrimmingTestProject>
|
||||||
<IsNativeAotTestProject Condition="$(MSBuildProjectName.EndsWith('.NativeAotTests'))">true</IsNativeAotTestProject>
|
<IsTestSupportProject Condition="'$(IsTestProject)' != 'true' and '$(IsTrimmingTestProject)' != 'true'">true</IsTestSupportProject>
|
||||||
<IsPublishedAppTestProject Condition="'$(IsTrimmingTestProject)' == 'true' or '$(IsNativeAotTestProject)' == 'true'">true</IsPublishedAppTestProject>
|
|
||||||
<IsTestSupportProject Condition="'$(IsTestProject)' != 'true' and '$(IsPublishedAppTestProject)' != 'true'">true</IsTestSupportProject>
|
|
||||||
|
|
||||||
<!-- Treat test assemblies as non-shipping (do not publish or sign them). -->
|
<!-- Treat test assemblies as non-shipping (do not publish or sign them). -->
|
||||||
<IsShipping Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsPublishedAppTestProject)' == 'true'">false</IsShipping>
|
<IsShipping Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsTrimmingTestProject)' == 'true'">false</IsShipping>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
@ -413,7 +411,7 @@
|
||||||
'$(IsReferenceAssemblyProject)' != 'true' and
|
'$(IsReferenceAssemblyProject)' != 'true' and
|
||||||
'$(IsGeneratorProject)' != 'true' and
|
'$(IsGeneratorProject)' != 'true' and
|
||||||
'$(IsTestProject)' != 'true' and
|
'$(IsTestProject)' != 'true' and
|
||||||
'$(IsPublishedAppTestProject)' != 'true' and
|
'$(IsTrimmingTestProject)' != 'true' and
|
||||||
'$(IsTestSupportProject)' != 'true' and
|
'$(IsTestSupportProject)' != 'true' and
|
||||||
'$(UsingMicrosoftDotNetSharedFrameworkSdk)' != 'true' and
|
'$(UsingMicrosoftDotNetSharedFrameworkSdk)' != 'true' and
|
||||||
'$(MSBuildProjectExtension)' != '.pkgproj' and
|
'$(MSBuildProjectExtension)' != '.pkgproj' and
|
||||||
|
@ -464,7 +462,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- Warnings that should be disabled in our test projects. -->
|
<!-- Warnings that should be disabled in our test projects. -->
|
||||||
<PropertyGroup Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsPublishedAppTestProject)' == 'true'">
|
<PropertyGroup Condition="'$(IsTestProject)' == 'true' or '$(IsTestSupportProject)' == 'true' or '$(IsTrimmingTestProject)' == 'true'">
|
||||||
<!-- we need to re-enable BinaryFormatter within test projects since some tests exercise these code paths to ensure compat -->
|
<!-- we need to re-enable BinaryFormatter within test projects since some tests exercise these code paths to ensure compat -->
|
||||||
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
|
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
|
||||||
<!-- don't warn on usage of BinaryFormatter or legacy serialization infrastructure from test projects -->
|
<!-- don't warn on usage of BinaryFormatter or legacy serialization infrastructure from test projects -->
|
||||||
|
|
|
@ -21,11 +21,3 @@ steps:
|
||||||
nativeAotTest: true
|
nativeAotTest: true
|
||||||
helixQueues: ${{ parameters.helixQueues }}
|
helixQueues: ${{ parameters.helixQueues }}
|
||||||
liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
|
liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
|
||||||
|
|
||||||
# Can't run arm/arm64 tests on x64 build machines
|
|
||||||
- ${{ if and(ne(parameters.archType, 'arm'), ne(parameters.archType, 'arm64')) }}:
|
|
||||||
|
|
||||||
# Publishing tooling doesn't support different configs between runtime and libs, so only run tests in Release config
|
|
||||||
- ${{ if eq(parameters.buildConfig, 'release') }}:
|
|
||||||
- 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 }}
|
|
||||||
displayName: Run NativeAot Library Tests
|
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
parameters:
|
parameters:
|
||||||
archType: ''
|
archType: ''
|
||||||
extraTestArgs: ''
|
extraTestArgs: ''
|
||||||
|
runAotTests: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
# Execute tests
|
# Execute tests
|
||||||
- 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 }}
|
- 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 }}
|
||||||
displayName: Run Trimming Tests
|
displayName: Run Trimming Tests
|
||||||
|
|
||||||
|
# Execute AOT test app tests
|
||||||
|
- ${{ if eq(parameters.runAotTests, true) }}:
|
||||||
|
- 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 }}
|
||||||
|
displayName: Run Native AOT Test App Tests
|
||||||
|
|
|
@ -135,3 +135,4 @@ extends:
|
||||||
- template: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
|
- template: /eng/pipelines/libraries/execute-trimming-tests-steps.yml
|
||||||
parameters:
|
parameters:
|
||||||
extraTestArgs: '/p:WasmBuildNative=false'
|
extraTestArgs: '/p:WasmBuildNative=false'
|
||||||
|
runAotTests: false
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
<!-- Suppress analyzer and trimming warnings as these are tests -->
|
<!-- Suppress analyzer and trimming warnings as these are tests -->
|
||||||
<EnableTrimAnalyzer>false</EnableTrimAnalyzer>
|
<EnableTrimAnalyzer>false</EnableTrimAnalyzer>
|
||||||
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
|
<SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
|
||||||
|
<SuppressAotAnalysisWarnings>true</SuppressAotAnalysisWarnings>
|
||||||
<NoWarn>$(NoWarn);IL2121</NoWarn>
|
<NoWarn>$(NoWarn);IL2121</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
<Project>
|
<Project>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TrimmingTestDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'trimmingTests'))</TrimmingTestDir>
|
<TrimmingTestDir Condition="'$(TestTrimming)' == 'true'">$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'trimmingTests'))</TrimmingTestDir>
|
||||||
|
<TrimmingTestDir Condition="'$(RunNativeAotTestApps)' == 'true'">$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'aotTests'))</TrimmingTestDir>
|
||||||
|
|
||||||
<TrimmingTestProjectsDir>$([MSBuild]::NormalizeDirectory('$(TrimmingTestDir)', 'projects'))</TrimmingTestProjectsDir>
|
<TrimmingTestProjectsDir>$([MSBuild]::NormalizeDirectory('$(TrimmingTestDir)', 'projects'))</TrimmingTestProjectsDir>
|
||||||
<ProjectTemplate>$(MSBuildThisFileDirectory)project.csproj.template</ProjectTemplate>
|
<ProjectTemplate>$(MSBuildThisFileDirectory)project.csproj.template</ProjectTemplate>
|
||||||
<UseLocalAppHostPack>true</UseLocalAppHostPack>
|
<UseLocalAppHostPack>true</UseLocalAppHostPack>
|
||||||
|
|
|
@ -81,6 +81,9 @@
|
||||||
<_additionalPropertiesString>@(_propertiesAsItems->'<%(Identity)>%(Value)</%(Identity)>', '%0a ')</_additionalPropertiesString>
|
<_additionalPropertiesString>@(_propertiesAsItems->'<%(Identity)>%(Value)</%(Identity)>', '%0a ')</_additionalPropertiesString>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<!-- RunNativeAotTestApps trumps TestTrimming, same as PublishAot trumps PublishTrimmed, but it's very likely not what the user intended. -->
|
||||||
|
<Error Condition="'$(RunNativeAotTestApps)' == 'true' and '$(TestTrimming)' == 'true'" Text="Not possible to test both IL trimming and AOT at the same time" />
|
||||||
|
|
||||||
<MakeDir Directories="$(_projectDir)" />
|
<MakeDir Directories="$(_projectDir)" />
|
||||||
<WriteLinesToFile File="$(_projectFile)"
|
<WriteLinesToFile File="$(_projectFile)"
|
||||||
Lines="$([System.IO.File]::ReadAllText('$(ProjectTemplate)')
|
Lines="$([System.IO.File]::ReadAllText('$(ProjectTemplate)')
|
||||||
|
@ -88,7 +91,7 @@
|
||||||
.Replace('{NetCoreAppMaximumVersion}', '$(NetCoreAppMaximumVersion)')
|
.Replace('{NetCoreAppMaximumVersion}', '$(NetCoreAppMaximumVersion)')
|
||||||
.Replace('{UseMonoRuntime}','$(UseMonoRuntime)')
|
.Replace('{UseMonoRuntime}','$(UseMonoRuntime)')
|
||||||
.Replace('{RuntimeIdentifier}','%(TestConsoleApps.TestRuntimeIdentifier)')
|
.Replace('{RuntimeIdentifier}','%(TestConsoleApps.TestRuntimeIdentifier)')
|
||||||
.Replace('{PublishAot}','$(IsNativeAotTestProject)')
|
.Replace('{PublishAot}','$(RunNativeAotTestApps)')
|
||||||
.Replace('{ExtraTrimmerArgs}', '%(TestConsoleApps.ExtraTrimmerArgs)')
|
.Replace('{ExtraTrimmerArgs}', '%(TestConsoleApps.ExtraTrimmerArgs)')
|
||||||
.Replace('{AdditionalProperties}', '$(_additionalPropertiesString)')
|
.Replace('{AdditionalProperties}', '$(_additionalPropertiesString)')
|
||||||
.Replace('{ToolsILLinkDir}', '$(ToolsILLinkDir)')
|
.Replace('{ToolsILLinkDir}', '$(ToolsILLinkDir)')
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<Import Project="NetCoreAppLibrary.props" />
|
<Import Project="NetCoreAppLibrary.props" />
|
||||||
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.props" Condition="'$(IsPublishedAppTestProject)' == 'true'" />
|
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.props" Condition="'$(IsTrimmingTestProject)' == 'true'" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!-- Default any assembly not specifying a key to use the Open Key -->
|
<!-- Default any assembly not specifying a key to use the Open Key -->
|
||||||
|
|
|
@ -131,7 +131,7 @@
|
||||||
<Import Project="$(RepositoryEngineeringDir)codeOptimization.targets" />
|
<Import Project="$(RepositoryEngineeringDir)codeOptimization.targets" />
|
||||||
<Import Project="$(RepositoryEngineeringDir)references.targets" />
|
<Import Project="$(RepositoryEngineeringDir)references.targets" />
|
||||||
<Import Project="$(RepositoryEngineeringDir)testing\tests.targets" Condition="'$(EnableTestSupport)' == 'true'" />
|
<Import Project="$(RepositoryEngineeringDir)testing\tests.targets" Condition="'$(EnableTestSupport)' == 'true'" />
|
||||||
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.targets" Condition="'$(IsPublishedAppTestProject)' == 'true'" />
|
<Import Project="$(RepositoryEngineeringDir)testing\linker\trimmingTests.targets" Condition="'$(IsTrimmingTestProject)' == 'true'" />
|
||||||
<Import Project="$(RepositoryEngineeringDir)testing\runtimeConfiguration.targets" />
|
<Import Project="$(RepositoryEngineeringDir)testing\runtimeConfiguration.targets" />
|
||||||
<Import Project="$(RepositoryEngineeringDir)testing\runsettings.targets" Condition="'$(EnableRunSettingsSupport)' == 'true'" />
|
<Import Project="$(RepositoryEngineeringDir)testing\runsettings.targets" Condition="'$(EnableRunSettingsSupport)' == 'true'" />
|
||||||
<Import Project="$(RepositoryEngineeringDir)testing\coverage.targets" Condition="'$(EnableRunSettingsSupport)' == 'true' or '$(EnableCoverageSupport)' == 'true'" />
|
<Import Project="$(RepositoryEngineeringDir)testing\coverage.targets" Condition="'$(EnableRunSettingsSupport)' == 'true' or '$(EnableCoverageSupport)' == 'true'" />
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
<Project DefaultTargets="Build">
|
|
||||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props))" />
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<TestConsoleAppSourceFiles Include="DiagnosticSourceEventSourceTests.cs"
|
|
||||||
EnabledProperties="EventSourceSupport" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets))" />
|
|
||||||
</Project>
|
|
|
@ -2,6 +2,8 @@
|
||||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props))" />
|
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props))" />
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<TestConsoleAppSourceFiles Include="DiagnosticSourceEventSourceTests.cs"
|
||||||
|
EnabledProperties="EventSourceSupport" />
|
||||||
<TestConsoleAppSourceFiles Include="WritePreservesAnonymousProperties.cs" />
|
<TestConsoleAppSourceFiles Include="WritePreservesAnonymousProperties.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|
|
@ -646,16 +646,23 @@
|
||||||
BuildInParallel="$(BuildTestInParallel)" />
|
BuildInParallel="$(BuildTestInParallel)" />
|
||||||
<ProjectReference Include="$(MSBuildThisFileDirectory)testPackages\testPackages.proj"
|
<ProjectReference Include="$(MSBuildThisFileDirectory)testPackages\testPackages.proj"
|
||||||
Condition="'$(TestPackages)' == 'true'" />
|
Condition="'$(TestPackages)' == 'true'" />
|
||||||
|
|
||||||
|
<!-- We need to go over these disablements: https://github.com/dotnet/runtime/issues/101228 -->
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Diagnostics.Tracing\tests\TrimmingTests\System.Diagnostics.Tracing.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Linq.Queryable\tests\TrimmingTests\System.Linq.Queryable.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Private.Xml.Linq\tests\TrimmingTests\System.Xml.Linq.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Net.Http\tests\TrimmingTests\System.Net.Http.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Reflection.DispatchProxy\tests\TrimmingTests\System.Reflection.DispatchProxy.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Linq.Expressions\tests\TrimmingTests\System.Linq.Expressions.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Private.Xml\tests\TrimmingTests\System.Private.Xml.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Runtime\tests\System.Runtime.Tests\TrimmingTests\System.Runtime.TrimmingTests.proj" />
|
||||||
|
<ProjectExclusions Condition="'$(RunNativeAotTestApps)' == 'true'" Include="$(MSBuildThisFileDirectory)\System.Text.Json\tests\System.Text.Json.Tests\TrimmingTests\System.Text.Json.TrimmingTests.proj" />
|
||||||
|
|
||||||
<TrimmingTestProjects Include="$(MSBuildThisFileDirectory)*\tests\**\*.TrimmingTests.proj"
|
<TrimmingTestProjects Include="$(MSBuildThisFileDirectory)*\tests\**\*.TrimmingTests.proj"
|
||||||
Exclude="@(ProjectExclusions)"
|
Exclude="@(ProjectExclusions)"
|
||||||
Condition="'$(TestTrimming)' == 'true'"
|
Condition="'$(TestTrimming)' == 'true' or '$(RunNativeAotTestApps)' == 'true'"
|
||||||
AdditionalProperties="%(AdditionalProperties);SkipTrimmingProjectsRestore=true" />
|
AdditionalProperties="%(AdditionalProperties);SkipTrimmingProjectsRestore=true" />
|
||||||
<ProjectReference Include="@(TrimmingTestProjects)" />
|
<ProjectReference Include="@(TrimmingTestProjects)" />
|
||||||
<NativeAotTestAppProjects Include="$(MSBuildThisFileDirectory)*\tests\**\*.NativeAotTests.proj"
|
|
||||||
Exclude="@(ProjectExclusions)"
|
|
||||||
Condition="'$(RunNativeAotTestApps)' == 'true'"
|
|
||||||
AdditionalProperties="%(AdditionalProperties);SkipTrimmingProjectsRestore=true" />
|
|
||||||
<ProjectReference Include="@(NativeAotTestAppProjects)" />
|
|
||||||
|
|
||||||
<!-- wasm.build.tests are run on _WasmBuildTests job on CI, and with library tests locally. -->
|
<!-- wasm.build.tests are run on _WasmBuildTests job on CI, and with library tests locally. -->
|
||||||
<ProjectReference Include="$(WasmProjectRoot)Wasm.Build.Tests\*.Tests.csproj"
|
<ProjectReference Include="$(WasmProjectRoot)Wasm.Build.Tests\*.Tests.csproj"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue