There are various property values that could be placed in a central location and only defined once. For example:
A) This property that determines if XUnitLogChecker is supported, is already in a central location:
|
<IsXUnitLogCheckerSupported Condition="'$(IsXUnitLogCheckerSupported)' == ''">false</IsXUnitLogCheckerSupported> |
|
<IsXUnitLogCheckerSupported Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(TestNativeAot)' != 'true' and '$(TestRunNamePrefixSuffix)' != 'NativeAOT_Release' and '$(TargetOS)' != 'browser' and '$(TargetOS)' != 'wasi' and '$(TargetOS)' != 'ios' and '$(TargetOS)' != 'iossimulator' and '$(TargetOS)' != 'tvos' and '$(TargetOS)' != 'tvossimulator' and '$(TargetOS)' != 'maccatalyst' and '$(TargetOS)' != 'android'">true</IsXUnitLogCheckerSupported> |
It is a very similar condition to the one used in the coreclr specific code:
|
<HelixCorrelationPayload Include="$(XUnitLogCheckerDirectory)" Condition="'$(TargetsBrowser)' != 'true' and '$(TargetsiOS)' != 'true' and '$(TargetsiOSSimulator)' != 'true' and '$(TargetstvOS)' != 'true' and '$(TargetstvOSSimulator)' != 'true'" /> |
B) The coreclr paths:
|
<CoreRootDirectory>$(TestBinDir)Tests\Core_Root\</CoreRootDirectory> |
|
<CoreRootDirectory>$([MSBuild]::NormalizeDirectory($(CoreRootDirectory)))</CoreRootDirectory> |
|
<XUnitLogCheckerDirectory>$(TestBinDir)Common\XUnitLogChecker\</XUnitLogCheckerDirectory> |
|
<XUnitLogCheckerDirectory>$([MSBuild]::NormalizeDirectory($(XUnitLogCheckerDirectory)))</XUnitLogCheckerDirectory> |
|
<LegacyPayloadsRootDirectory>$(TestBinDir)LegacyPayloads\</LegacyPayloadsRootDirectory> |
|
<LegacyPayloadsRootDirectory>$([MSBuild]::NormalizeDirectory($(LegacyPayloadsRootDirectory)))</LegacyPayloadsRootDirectory> |
|
<MergedPayloadsRootDirectory>$(TestBinDir)MergedPayloads\</MergedPayloadsRootDirectory> |
|
<MergedPayloadsRootDirectory>$([MSBuild]::NormalizeDirectory($(MergedPayloadsRootDirectory)))</MergedPayloadsRootDirectory> |
Could also be merged into the same paths used by libraries:
|
<XUnitLogCheckerLibrariesOutDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'XUnitLogChecker'))</XUnitLogCheckerLibrariesOutDir> |
C) The build task in Libraries does this:
|
AdditionalProperties="%(AdditionalProperties);Configuration=Release;OutDir=$(XUnitLogCheckerLibrariesOutDir)" /> |
and the collection of the built artifacts is done here:
While coreclr restores/builds it in this file:
|
<RestoreProjects Include="Common\XUnitLogChecker\XUnitLogChecker.csproj" /> |
So there's also an opportunity to merge these two into a single centralized one.
There are various property values that could be placed in a central location and only defined once. For example:
A) This property that determines if XUnitLogChecker is supported, is already in a central location:
runtime/Directory.Build.props
Lines 336 to 337 in c643fed
It is a very similar condition to the one used in the coreclr specific code:
runtime/src/tests/Common/helixpublishwitharcade.proj
Line 782 in c643fed
B) The coreclr paths:
runtime/src/tests/Common/helixpublishwitharcade.proj
Lines 68 to 75 in c643fed
Could also be merged into the same paths used by libraries:
runtime/Directory.Build.props
Line 338 in c643fed
C) The build task in Libraries does this:
runtime/src/libraries/tests.proj
Line 709 in c643fed
and the collection of the built artifacts is done here:
runtime/eng/pipelines/libraries/prepare-for-bin-publish.yml
Line 17 in c643fed
While coreclr restores/builds it in this file:
runtime/src/tests/build.proj
Line 31 in c643fed
So there's also an opportunity to merge these two into a single centralized one.