Skip to content

Commit 0bb92cb

Browse files
committed
Add option to select Mono as the testhost runtime with the /p:TestRuntimeFlavor=Mono property
1 parent bd5ef5c commit 0bb92cb

File tree

6 files changed

+52
-4
lines changed

6 files changed

+52
-4
lines changed

eng/liveBuilds.targets

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
<PropertyGroup>
44
<CoreCLROSGroup Condition="'$(CoreCLROSGroup)' == ''">$(OSGroup)</CoreCLROSGroup>
55
<CoreCLRConfiguration Condition="'$(CoreCLRConfiguration)' == ''">$(Configuration)</CoreCLRConfiguration>
6+
<MonoOSGroup Condition="'$(MonoOSGroup)' == ''">$(OSGroup)</MonoOSGroup>
7+
<MonoConfiguration Condition="'$(MonoConfiguration)' == ''">$(Configuration)</MonoConfiguration>
68
<LibrariesOSGroup Condition="'$(LibrariesOSGroup)' == ''">$(OSGroup)</LibrariesOSGroup>
79
<LibrariesConfiguration Condition="'$(LibrariesConfiguration)' == ''">$(Configuration)</LibrariesConfiguration>
810

@@ -12,6 +14,7 @@
1214
<!-- Accept override paths for live artifacts. -->
1315
<PropertyGroup>
1416
<CoreCLRArtifactsPath Condition="'$(CoreCLROverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLROverridePath)'))</CoreCLRArtifactsPath>
17+
<MonoArtifactsPath Condition="'$(MonoOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(MonoOverridePath)'))</MonoArtifactsPath>
1518
<LibrariesArtifactsPath Condition="'$(LibrariesOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(LibrariesOverridePath)'))</LibrariesArtifactsPath>
1619
<LibrariesAllConfigurationsArtifactsPath Condition="'$(LibrariesAllConfigurationsOverridePath)' != ''">$([MSBuild]::NormalizeDirectory('$(LibrariesAllConfigurationsOverridePath)'))</LibrariesAllConfigurationsArtifactsPath>
1720
</PropertyGroup>
@@ -40,6 +43,7 @@
4043
<ArtifactPlatform>$(ArtifactPlatform.Replace('-', '_'))</ArtifactPlatform>
4144

4245
<CoreCLRArtifactsPath>$([MSBuild]::NormalizeDirectory('$(AllArtifactsDownloadPath)', 'CoreCLRProduct_$(ArtifactPlatform)_$(CoreCLRConfiguration)'))</CoreCLRArtifactsPath>
46+
<MonoArtifactsPath>$([MSBuild]::NormalizeDirectory('$(AllArtifactsDownloadPath)', 'MonoProduct_$(ArtifactPlatform)_$(MonoConfiguration)'))</MonoArtifactsPath>
4347
<LibrariesArtifactsPath>$([MSBuild]::NormalizeDirectory('$(AllArtifactsDownloadPath)', 'libraries_bin_$(ArtifactPlatform)_$(LibrariesConfiguration)'))</LibrariesArtifactsPath>
4448

4549
<!--
@@ -52,6 +56,7 @@
5256
<!-- Set up default live asset paths if no overrides provided. -->
5357
<PropertyGroup>
5458
<CoreCLRArtifactsPath Condition="'$(CoreCLRArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(CoreCLROSGroup).$(TargetArchitecture).$(CoreCLRConfiguration)'))</CoreCLRArtifactsPath>
59+
<MonoArtifactsPath Condition="'$(MonoArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(MonoOSGroup).$(TargetArchitecture).$(MonoConfiguration)'))</MonoArtifactsPath>
5560
<LibrariesArtifactsPath Condition="'$(LibrariesArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</LibrariesArtifactsPath>
5661
<LibrariesAllConfigurationsArtifactsPath Condition="'$(LibrariesAllConfigurationsArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</LibrariesAllConfigurationsArtifactsPath>
5762
</PropertyGroup>
@@ -127,6 +132,16 @@
127132
<Error Condition="'@(CoreCLRFiles)' == ''" Text="The CoreCLR subset category must be built before building this project." />
128133
</Target>
129134

135+
<Target Name="ResolveMonoFilesFromLocalBuild">
136+
<Error Condition="!Exists('$(MonoArtifactsPath)')" Text="The Mono artifacts path does not exist '$(MonoArtifactsPath)'. The Mono subset category must be built before building this project." />
137+
138+
<ItemGroup>
139+
<MonoFiles Include="$(MonoArtifactsPath)\*.*" />
140+
</ItemGroup>
141+
142+
<Error Condition="'@(MonoFiles)' == ''" Text="The Mono subset category must be built before building this project." />
143+
</Target>
144+
130145
<Target Name="EnsureLocalArtifactsExist">
131146
<Error Condition="!Exists('$(LibrariesSharedFrameworkRefArtifactsPath)')" Text="The libraries subset category must be built before building this project. Missing artifacts: $(LibrariesSharedFrameworkRefArtifactsPath)" />
132147
<Error Condition="!Exists('$(LibrariesAllRefArtifactsPath)')" Text="The libraries subset category must be built before building this project. Missing artifacts: $(LibrariesAllRefArtifactsPath)" />

eng/testing/tests.targets

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
<RunScriptHost Condition="'$(TargetOS)' == 'Windows_NT'">$(RunScriptHostDir)dotnet.exe</RunScriptHost>
1818
<RunScriptHost Condition="'$(TargetOS)' != 'Windows_NT'">$(RunScriptHostDir)dotnet</RunScriptHost>
19+
20+
<MonoRspFile>$(RunWorkingDirectory)mono.issues.rsp</MonoRspFile>
1921
</PropertyGroup>
2022

2123
<!-- Archive test binaries. -->
@@ -72,6 +74,19 @@
7274
OutputPath="$(RunScriptOutputPath)" />
7375

7476
<Exec Condition="'$(TargetOS)' != 'Windows_NT'" Command="chmod +x $(RunScriptOutputPath)" />
77+
78+
<!-- Generate Mono .rsp file -->
79+
<ItemGroup>
80+
<MonoRspFiles Include="$(MonoProjectRoot)netcore\CoreFX.issues.rsp" />
81+
<MonoRspFiles Include="$(MonoProjectRoot)netcore\CoreFX.issues_mac.rsp" Condition="'$(TargetOS)' == 'OSX'" />
82+
<MonoRspFiles Include="$(MonoProjectRoot)netcore\CoreFX.issues_linux.rsp" Condition="'$(TargetOS)' == 'Linux'" />
83+
<MonoRspFiles Include="$(MonoProjectRoot)netcore\CoreFX.issues_windows.rsp" Condition="'$(TargetOS)' == 'Windows_NT'" />
84+
</ItemGroup>
85+
<ItemGroup>
86+
<MonoRspFileContent Include="$([System.IO.File]::ReadAllText(%(MonoRspFiles.Identity)))" />
87+
</ItemGroup>
88+
89+
<WriteLinesToFile File="$(MonoRspFile)" Lines="@(MonoRspFileContent)" Overwrite="true" />
7590
</Target>
7691

7792
<Target Name="ValidateTestPlatform">
@@ -100,6 +115,7 @@
100115

101116
<PropertyGroup>
102117
<RunTestsCommand>"$(RunScriptOutputPath)" --runtime-path "$(TestHostRootPath.TrimEnd('\/'))"</RunTestsCommand>
118+
<RunTestsCommand Condition="'$(TestRuntimeFlavor)' == 'Mono'">$(RunTestsCommand) --rsp-file "$(MonoRspFile)"</RunTestsCommand>
103119
<RunTestsCommand Condition="'$(TestRspFile)' != ''">$(RunTestsCommand) --rsp-file "$(TestRspFile)"</RunTestsCommand>
104120
</PropertyGroup>
105121

src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<CoreCLROSGroup Condition="'$(TargetsLinux)' == 'true'">Linux</CoreCLROSGroup>
88
<CoreCLROSGroup Condition="'$(TargetsOSX)' == 'true'">OSX</CoreCLROSGroup>
99
<CoreCLROSGroup Condition="'$(TargetsFreeBSD)' == 'true'">FreeBSD</CoreCLROSGroup>
10+
<MonoOSGroup>$(CoreCLROSGroup)</MonoOSGroup>
1011
<LibrariesOSGroup>$(CoreCLROSGroup)</LibrariesOSGroup>
1112
</PropertyGroup>
1213

src/libraries/Directory.Build.targets

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<PropertyGroup>
33
<CoreCLROSGroup Condition="'$(CoreCLROSGroup)' == ''">$(_bc_OSGroup)</CoreCLROSGroup>
44
<CoreCLRConfiguration Condition="'$(CoreCLRConfiguration)' == ''">$(_bc_ConfigurationGroup)</CoreCLRConfiguration>
5+
<MonoOSGroup Condition="'$(MonoCLROSGroup)' == ''">$(_bc_OSGroup)</MonoOSGroup>
6+
<MonoConfiguration Condition="'$(MonoConfiguration)' == ''">$(_bc_ConfigurationGroup)</MonoConfiguration>
57
</PropertyGroup>
68

79
<Import Project="..\..\Directory.Build.targets" />

src/libraries/restore/runtime/runtime.depproj

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
<!-- We're using ToolRuntimeRID as a placeholder for the real corelib/runtime components until we have an actual set of runtime bits to consume for webassembly. -->
55
<RuntimeIdentifier Condition="'$(RuntimeOS)' == 'webassembly'">$(ToolRuntimeRID)</RuntimeIdentifier>
66
<NoWarn>$(NoWarn);NU1603;NU1605</NoWarn>
7-
<SwapNativeForIL Condition="'$(SwapNativeForIL)' == '' and ('$(ConfigurationGroup)' == 'Debug' or '$(Coverage)' == 'true')">true</SwapNativeForIL>
7+
<SwapNativeForIL Condition="'$(SwapNativeForIL)' == '' and ('$(ConfigurationGroup)' == 'Debug' or '$(Coverage)' == 'true') and '$(TestRuntimeFlavor)' != 'Mono'">true</SwapNativeForIL>
88
<CoreCLROSGroup Condition="'$(CoreCLROSGroup)' == ''">$(DefaultOSGroup)</CoreCLROSGroup>
99
<CoreCLRConfiguration Condition="'$(CoreCLRConfiguration)' == ''">$(ConfigurationGroup)</CoreCLRConfiguration>
10+
<MonoOSGroup Condition="'$(MonoOSGroup)' == ''">$(DefaultOSGroup)</MonoOSGroup>
11+
<MonoConfiguration Condition="'$(MonoConfiguration)' == ''">$(ConfigurationGroup)</MonoConfiguration>
1012
<BinPlaceForTargetVertical>false</BinPlaceForTargetVertical>
1113
</PropertyGroup>
1214

@@ -61,9 +63,10 @@
6163
<Exec Command="chmod +x $(TestHostRootPath)%(DotnetExe.Filename)%(DotnetExe.Extension)" Condition="'$(OS)' != 'Windows_NT'"/>
6264
</Target>
6365

64-
<Target Name="OverrideRuntime"
66+
<Target Name="OverrideRuntimeCoreCLR"
6567
DependsOnTargets="ResolveCoreCLRFilesFromLocalBuild"
66-
AfterTargets="AfterResolveReferences;FilterNugetPackages">
68+
AfterTargets="AfterResolveReferences;FilterNugetPackages"
69+
Condition="'$(TestRuntimeFlavor)' != 'Mono'">
6770
<ItemGroup>
6871
<!-- CoreRun is not used for testing anymore, but we still use it for benchmarking and profiling -->
6972
<CoreCLRFiles Include="$(CoreCLRArtifactsPath)/corerun*" />
@@ -72,6 +75,15 @@
7275
</ItemGroup>
7376
</Target>
7477

78+
<Target Name="OverrideRuntimeMono"
79+
DependsOnTargets="ResolveMonoFilesFromLocalBuild"
80+
AfterTargets="AfterResolveReferences;FilterNugetPackages"
81+
Condition="'$(TestRuntimeFlavor)' == 'Mono'">
82+
<ItemGroup>
83+
<ReferenceCopyLocalPaths Include="@(MonoFiles)" />
84+
</ItemGroup>
85+
</Target>
86+
7587
<Target Name="GetCoreCLRILFiles" DependsOnTargets="ResolveCoreCLRFilesFromLocalBuild">
7688
<ItemGroup>
7789
<CoreCLRILFiles Include="$(CoreCLRArtifactsPath)/IL/*.*" />
@@ -81,7 +93,7 @@
8193

8294
<Target Name="SwapNativeForIL"
8395
AfterTargets="AfterResolveReferences"
84-
DependsOnTargets="GetCoreCLRILFiles;OverrideRuntime"
96+
DependsOnTargets="GetCoreCLRILFiles;OverrideRuntimeCoreCLR"
8597
Condition="'$(SwapNativeForIL)' == 'true'">
8698
<ItemGroup>
8799
<ReferenceCopyLocalPaths Remove="@(ReferenceCopyLocalPaths)" Condition="'@(CoreCLRILFiles->'%(FileName)%(Extension)')' == '%(FileName)%(Extension)'" />

src/libraries/shims/manual/Directory.Build.props

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
<RefPath>$(ArtifactsBinDir)runtime/$(TargetFramework)-$(_bc_OSGroup)-$(_bc_ConfigurationGroup)-$(ArchGroup)/</RefPath>
1616
<CoreCLROSGroup>$(_bc_OSGroup)</CoreCLROSGroup>
1717
<CoreCLRConfiguration>$(_bc_ConfigurationGroup)</CoreCLRConfiguration>
18+
<MonoOSGroup>$(_bc_OSGroup)</MonoOSGroup>
19+
<MonoConfiguration>$(_bc_ConfigurationGroup)</MonoConfiguration>
1820
</PropertyGroup>
1921

2022
<ItemGroup>

0 commit comments

Comments
 (0)