1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-08 11:37:04 +09:00

Dev infra master merge1 (#37274)

* Build all managed coreclr tests on OSX in CI (#36253)

Remove concept of targetGeneric and targetSpecific

Add OSX corelcr managed tests builds to all pipes
Remove all other platform coreclr managed test build

Remove property `TestUnsupportedOutsideWindows`
Rename conditional `DisableProjectBuild` to `CLRTestTargetUnsupported`

Refactor tests to allow all managed tests to be built on OSX.

Split managed tests which based on target properties conditionally:
+ `<Compile Include/>`
+ `<DefineConstant/>`

This creates a separate test for each target configuration permutation.

Add `<CLRTestTargetUnsupported/>` conditions to select these at build and/or
run time

Append split tests with `_Target*` to identify intended test target

For tests which depend on target specific internal details od System.Private.Corlib,
expose a dummy implementation for unsupported targets.

Clean up

Remove <TraitTags/>
Remove <CLRTestNeedTarget/>
Remove managedOSXBuild
Remove managedTestBuildOsGroup
Remove managedTestBuildOsSubGroup

Use issues.target to disable expected failures

Some tests are configured to run on a targets with
specific charecteristics.

Use issues.targets to conditionally disable tests
not intended to run on all targets.

* Setup pr and batch runs for dev/infrsatructure (#36218) (#36299)

Co-authored-by: Jarret Shook <jashoo@microsoft.com>

* Add alias CoreClrTestBuildHost (#36256)

* Add alias CoreClrTestBuildHost

Intended to allow easy switching of test build host between OSX_x64 & Linux_x64
depending on availablility and reliability.

* Add missing issues.targets from #36253 (#36351)

* Add missing issues.targets from #36253

PR #36253 enabled building all tests on OSX. It was intended to include this list of
tests to disable on unsupported platforms. This was dropped as part of rebasing for
dev/infra branch.

Lack of CI on dev/infra allowed this to be missed.

* Revise issues.targets

* Add src/coreclr/tests/src/baseservices/typeequivalence/simple

* Remove #if Windows from DllImportPathTest

* Build scripts while copying native binaries (#36482)

* Build scripts while copying native binaries

Stop building test scripts during the managed build phase
Build after copying the native targets

Fixes issues relative to building scripts on OSX

* Fix superpmi script generation

* Cleanup issues.targets

* Keep 6 failing IJW tests

* Fix IJW when managed tests are built on OSX (#36711)

* Fix IJW when managed tests are built on OSX

- Refactor Interop.setting.targets to Directory.Build.{targets,props}
- Remove include Interop.setting.targets from interop projects rely on SDK including
    Directory.Build.* automatically
- Add new CopyInteropNativeRuntimeDependencies target for copying IJW dependencies
  * Add <Copy/> task
- Delete obsolete instruction in Interop/ReadMe.md

* Cleanup Readme.md

* Optional stress dependencies & don't populate CORE_ROOT twice (#36851)

Bruce noticed that we're downloading and installing stress
runtime dependencies several times during build. I have added a new
option to suppress this behavior in build-test and I fixed the
invocations of build-test based on Bruce's analysis. I have also
patched the build scripts to avoid populating CORE_ROOT in
"copynativeonly" mode.

Thanks

Tomas

Fixes: #36797

* Build test scripts whenever CopyNativeProjectBinaries builds (#37028)

* Fix pri0 test build.

* Clean pri1 test build (#37266)

* Clean pri1 test build

* Undo testing comment

* Make sure weakreferencetest does not run on unix

* Fixup WinRT proj

* Fix path

Co-authored-by: Steve MacLean <Steve.MacLean@microsoft.com>
Co-authored-by: Tomáš Rylek <trylek@microsoft.com>
Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com>
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Andy Ayers <andya@microsoft.com>
Co-authored-by: Adeel Mujahid <adeelbm@outlook.com>
Co-authored-by: Ganbarukamo41 <ganbarukamo@gmail.com>
Co-authored-by: monojenkins <jo.shields+jenkins@xamarin.com>
Co-authored-by: thaystg <thaystg@users.noreply.github.com>
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Kevin Jones <kevin@vcsjones.com>
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Co-authored-by: Egor Bogatov <egorbo@gmail.com>
Co-authored-by: Simon Nattress <nattress@gmail.com>
Co-authored-by: Aleksey Kliger (λgeek) <alklig@microsoft.com>
Co-authored-by: Krzysztof Wicher <kwicher@microsoft.com>
Co-authored-by: Kunal Pathak <Kunal.Pathak@microsoft.com>
Co-authored-by: Carol Eidt <carol.eidt@microsoft.com>
Co-authored-by: Shimmy <2716316+weitzhandler@users.noreply.github.com>
Co-authored-by: Stephen Toub <stoub@microsoft.com>
Co-authored-by: Layomi Akinrinade <laakinri@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com>
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com>
Co-authored-by: Alexander Chermyanin <flamencist@mail.ru>
Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com>
Co-authored-by: Sergey Andreenko <seandree@microsoft.com>
Co-authored-by: Nikola Milosavljevic <nikolam@microsoft.com>
Co-authored-by: Steve Pfister <steveisok@users.noreply.github.com>
Co-authored-by: David Wrighton <davidwr@microsoft.com>
Co-authored-by: buyaa-n <bunamnan@microsoft.com>
Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com>
Co-authored-by: Vladimir Sadov <vsadov@microsoft.com>
Co-authored-by: Leandro Pereira <leandro.pereira@microsoft.com>
Co-authored-by: Swaroop Sridhar <swaroop.sridhar@microsoft.com>
Co-authored-by: Marie Píchová <11718369+ManickaP@users.noreply.github.com>
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
Co-authored-by: Manish Godse <61718172+mangod9@users.noreply.github.com>
Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
Co-authored-by: Alexis Christoforides <alexis@thenull.net>
Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com>
Co-authored-by: Alfred Myers <git@alfredmyers.com>
Co-authored-by: Nick Craver <nrcraver@gmail.com>
Co-authored-by: Nathan Ricci <naricc@microsoft.com>
Co-authored-by: Thays Grazia <thaystg@gmail.com>
Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Jo Shields <directhex@apebox.org>
Co-authored-by: Jan Vorlicek <janvorli@microsoft.com>
Co-authored-by: Anirudh Agnihotry <anirudhagnihotry098@gmail.com>
Co-authored-by: Roman Marusyk <Marusyk@users.noreply.github.com>
Co-authored-by: Zoltan Varga <vargaz@gmail.com>
Co-authored-by: Youssef Victor <31348972+Youssef1313@users.noreply.github.com>
Co-authored-by: Ben Adams <thundercat@illyriad.co.uk>
Co-authored-by: Marek Safar <marek.safar@gmail.com>
Co-authored-by: Anton Lapounov <antonl@microsoft.com>
Co-authored-by: AraHaan <15173749+AraHaan@users.noreply.github.com>
Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com>
Co-authored-by: Tomas Weinfurt <tweinfurt@yahoo.com>
Co-authored-by: Tomas Weinfurt <furt@Shining.local>
Co-authored-by: David Cantu <dacantu@microsoft.com>
Co-authored-by: Sung Yoon Whang <suwhang@microsoft.com>
Co-authored-by: Levi Broderick <GrabYourPitchforks@users.noreply.github.com>
Co-authored-by: vargaz <vargaz@users.noreply.github.com>
Co-authored-by: David Mason <davmason@microsoft.com>
Co-authored-by: UnityAlex <UnityAlex@users.noreply.github.com>
Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: Tanner Gooding <tagoo@outlook.com>
Co-authored-by: Egor Chesakov <Egor.Chesakov@microsoft.com>
Co-authored-by: radical <radical@users.noreply.github.com>
Co-authored-by: Ivan Diaz Sanchez <ivdiazsa@microsoft.com>
Co-authored-by: Gleb Balykov <g.balykov@samsung.com>
Co-authored-by: Honza Rameš <ramejan@gmail.com>
Co-authored-by: Eric StJohn <ericstj@microsoft.com>
Co-authored-by: Ivan <ivanbuha@outlook.com>
Co-authored-by: Ryan Lucia <rylucia@microsoft.com>
Co-authored-by: SRV <roman.sakno@gmail.com>
Co-authored-by: Clinton Ingram <clinton.ingram@outlook.com>
Co-authored-by: Mikhail Pilin <ww898@users.noreply.github.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: w-flo <w-flo@users.noreply.github.com>
Co-authored-by: Peter Sollich <petersol@microsoft.com>
Co-authored-by: grendello <grendello@users.noreply.github.com>
Co-authored-by: Johan Lorensson <lateralusx.github@gmail.com>
Co-authored-by: Erhan Atesoglu <47518605+eanova@users.noreply.github.com>
Co-authored-by: Matt Mitchell <mmitche@microsoft.com>
Co-authored-by: Josh Schreuder <joshschreuder@gmail.com>
Co-authored-by: Josh Schreuder <josh.schreuder@gmail.com>
Co-authored-by: Andrew Au <andrewau@microsoft.com>
Co-authored-by: Eugene Rozenfeld <erozen@microsoft.com>
Co-authored-by: Vlad Brezae <brezaevlad@gmail.com>
Co-authored-by: Kenneth Pouncey <kjpou@pt.lu>
Co-authored-by: Kirill Frolov <k.frolov@samsung.com>
Co-authored-by: Tomas Weinfurt <furt@DESKTOP-0J9757E.corp.microsoft.com>
This commit is contained in:
Jarret Shook 2020-06-04 08:43:40 -07:00 committed by GitHub
parent 13fbbeeae6
commit 9e09fe3c26
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
399 changed files with 1410 additions and 1398 deletions

View file

@ -37,8 +37,17 @@ Test cases are categorized by priority level. The most important subset should b
// The .NET Foundation licenses this file to you under the MIT license. // The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information. // See the LICENSE file in the project root for more information.
``` ```
* Disable building of a test by conditionally setting the `<DisableProjectBuild>` property. * The managed portion of all tests should be able to build on any platform.
* e.g. `<DisableProjectBuild Condition=" '$(Platform)' == 'arm64' ">true</DisableProjectBuild>` In fact in CI the managed portion of all tests will be built on OSX.
Each target will run a subset of the tests built on OSX.
Therefore the managed portion of each test **must not contain**:
* Target platform dependent conditionally compiled code.
* Target platform dependent conditionally included files
* Target platform dependent conditional `<DefineConstants/>`
* Disable building and running a test on selected Targets by conditionally setting the `<CLRTestTargetUnsupported>` property.
* e.g. `<CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm64'">true</CLRTestTargetUnsupported>`
* Disable building of a test by unconditionally setting the `<DisableProjectBuild>` property.
* e.g. `<DisableProjectBuild>true</DisableProjectBuild>`
* Exclude test from GCStress runs by adding the following to the csproj: * Exclude test from GCStress runs by adding the following to the csproj:
* `<GCStressIncompatible>true</GCStressIncompatible>` * `<GCStressIncompatible>true</GCStressIncompatible>`
* Exclude test from JIT stress runs runs by adding the following to the csproj: * Exclude test from JIT stress runs runs by adding the following to the csproj:
@ -46,6 +55,9 @@ Test cases are categorized by priority level. The most important subset should b
* Add NuGet references by updating the following [test project](https://github.com/dotnet/runtime/blob/master/src/coreclr/tests/src/Common/test_dependencies/test_dependencies.csproj). * Add NuGet references by updating the following [test project](https://github.com/dotnet/runtime/blob/master/src/coreclr/tests/src/Common/test_dependencies/test_dependencies.csproj).
* Get access to System.Private.CoreLib types and methods that are not exposed via public surface by adding the following to the csproj: * Get access to System.Private.CoreLib types and methods that are not exposed via public surface by adding the following to the csproj:
* `<ReferenceSystemPrivateCoreLib>true</ReferenceSystemPrivateCoreLib>` * `<ReferenceSystemPrivateCoreLib>true</ReferenceSystemPrivateCoreLib>`
* Any System.Private.CoreLib types and methods used by tests must be available for building on all platforms.
This means there must be enough implementation for the C# compiler to find the referenced types and methods. Unsupported target platforms
should simply `throw new PlatformNotSupportedException()` in its dummy method implementations.
* Update exclusion list at [tests/issues.targets](https://github.com/dotnet/runtime/blob/master/src/coreclr/tests/issues.targets) if the test fails due to active bug. * Update exclusion list at [tests/issues.targets](https://github.com/dotnet/runtime/blob/master/src/coreclr/tests/issues.targets) if the test fails due to active bug.
### Creating a C# test project ### Creating a C# test project

View file

@ -55,21 +55,26 @@ Please use the following command for help.
### Unsupported and temporarily disabled tests ### Unsupported and temporarily disabled tests
Unsupported tests outside of Windows have two annotations in their csproj to To support building all tests for all targets on single target, we use
ignore them when run. the conditional property
```xml ```xml
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="...">true</CLRTestTargetUnsupported>
``` ```
This will write in the bash target to skip the test by returning a passing value if run outside Windows. This property disables building of a test in a default build. It also
disables running a test in the bash/batch wrapper scripts. It allows the
test to be built on any target in CI when the `allTargets` option is
passed to the `build-test.*` scripts.
Tests which never should be built or run are marked
In addition:
```xml ```xml
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild> <DisableProjectBuild>true</DisableProjectBuild>
``` ```
Is used to disable the build, that way if building on Unix cycles are saved building/running. This propoerty should not be conditioned on Target properties to allow
all tests to be built for `allTargets`.
PAL tests PAL tests
--------- ---------

View file

@ -19,7 +19,6 @@ parameters:
helixQueuesTemplate: '' helixQueuesTemplate: ''
stagedBuild: false stagedBuild: false
# When set to false, suppresses reuse of OSX managed build artifacts (for pipelines without an OSX obj) # When set to false, suppresses reuse of OSX managed build artifacts (for pipelines without an OSX obj)
managedOsxBuild: true
# When set to true, passes the 'platforms' value as a job parameter also named 'platforms'. # When set to true, passes the 'platforms' value as a job parameter also named 'platforms'.
# Handled as an opt-in parameter to avoid excessive yaml. # Handled as an opt-in parameter to avoid excessive yaml.
passPlatforms: false passPlatforms: false
@ -47,7 +46,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: Linux
crossrootfsDir: '/crossrootfs/arm' crossrootfsDir: '/crossrootfs/arm'
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
@ -71,7 +69,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: Linux
crossrootfsDir: '/crossrootfs/arm64' crossrootfsDir: '/crossrootfs/arm64'
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
@ -100,11 +97,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ if ne(parameters.managedOsxBuild, true) }}:
managedTestBuildOsGroup: Linux
managedTestBuildOsSubgroup: _musl
${{ if eq(parameters.managedOsxBuild, true) }}:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# Linux musl arm64 # Linux musl arm64
@ -128,7 +120,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: Linux
crossrootfsDir: '/crossrootfs/arm64' crossrootfsDir: '/crossrootfs/arm64'
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
@ -152,10 +143,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
${{ if ne(parameters.managedOsxBuild, true) }}:
managedTestBuildOsGroup: Linux
${{ if eq(parameters.managedOsxBuild, true) }}:
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# WebAssembly # WebAssembly
@ -305,7 +292,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# tvOS arm64 # tvOS arm64
@ -325,7 +311,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# iOS x64 # iOS x64
@ -345,7 +330,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# iOS x86 # iOS x86
@ -385,7 +369,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# iOS arm64 # iOS arm64
@ -405,12 +388,11 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# macOS x64 # macOS x64
- ${{ if or(containsValue(parameters.platforms, 'OSX_x64'), eq(parameters.platformGroup, 'all')) }}: - ${{ if or(containsValue(parameters.platforms, 'OSX_x64'), containsValue(parameters.platforms, 'CoreClrTestBuildHost'), eq(parameters.platformGroup, 'all')) }}:
- template: xplat-setup.yml - template: xplat-setup.yml
parameters: parameters:
jobTemplate: ${{ parameters.jobTemplate }} jobTemplate: ${{ parameters.jobTemplate }}
@ -425,7 +407,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: OSX
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# Windows x64 # Windows x64
@ -445,7 +426,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: Windows_NT
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# Windows x86 # Windows x86
@ -465,7 +445,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: Windows_NT
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# Windows arm # Windows arm
@ -484,7 +463,6 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: Windows_NT
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}
# Windows arm64 # Windows arm64
@ -504,5 +482,4 @@ jobs:
${{ if eq(parameters.passPlatforms, true) }}: ${{ if eq(parameters.passPlatforms, true) }}:
platforms: ${{ parameters.platforms }} platforms: ${{ parameters.platforms }}
helixQueueGroup: ${{ parameters.helixQueueGroup }} helixQueueGroup: ${{ parameters.helixQueueGroup }}
managedTestBuildOsGroup: Windows_NT
${{ insert }}: ${{ parameters.jobParameters }} ${{ insert }}: ${{ parameters.jobParameters }}

View file

@ -39,8 +39,6 @@ jobs:
archType: ${{ parameters.archType }} archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }} osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }} osSubgroup: ${{ parameters.osSubgroup }}
managedTestBuildOsGroup: ${{ parameters.osGroup }}
managedTestBuildOsSubgroup: ${{ parameters.osSubgroup }}
container: ${{ parameters.container }} container: ${{ parameters.container }}
runtimeVariant: ${{ parameters.runtimeVariant }} runtimeVariant: ${{ parameters.runtimeVariant }}
testGroup: ${{ parameters.testGroup }} testGroup: ${{ parameters.testGroup }}
@ -53,13 +51,13 @@ jobs:
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
continueOnError: true continueOnError: true
# Compute job name from template parameters
${{ if eq(parameters.testGroup, 'innerloop') }}: ${{ if eq(parameters.testGroup, 'innerloop') }}:
name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{ parameters.buildConfig }}'
displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }}'
${{ if ne(parameters.testGroup, 'innerloop') }}: ${{ if ne(parameters.testGroup, 'innerloop') }}:
name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}' name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{ parameters.buildConfig }}'
displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build ${{ parameters.osGroup }}${{ parameters.osSubgroup }} ${{ parameters.archType }} ${{ parameters.buildConfig }}' displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }}'
# Since the condition is being altered, merge the default with the additional conditions. # Since the condition is being altered, merge the default with the additional conditions.
# See https://docs.microsoft.com/azure/devops/pipelines/process/conditions # See https://docs.microsoft.com/azure/devops/pipelines/process/conditions
@ -118,7 +116,7 @@ jobs:
displayName: Disk Usage before Build displayName: Disk Usage before Build
# Build managed test components # Build managed test components
- script: $(coreClrRepoRootDir)build-test$(scriptExt) skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg) - script: $(coreClrRepoRootDir)build-test$(scriptExt) allTargets skipstressdependencies skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
displayName: Build managed test components displayName: Build managed test components
- ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}:
@ -132,11 +130,11 @@ jobs:
parameters: parameters:
rootFolder: $(managedTestArtifactRootFolderPath) rootFolder: $(managedTestArtifactRootFolderPath)
includeRootFolder: false includeRootFolder: false
archiveType: $(archiveType) archiveExtension: '.tar.gz'
tarCompression: $(tarCompression) archiveType: tar
archiveExtension: $(archiveExtension) tarCompression: gz
artifactName: $(managedTestArtifactName) artifactName: $(managedGenericTestArtifactName)
displayName: 'managed test components' displayName: 'managed test components (generic)'
# Publish .packages/microsoft.net.sdk.il needed for traversing # Publish .packages/microsoft.net.sdk.il needed for traversing
@ -145,9 +143,9 @@ jobs:
parameters: parameters:
rootFolder: $(microsoftNetSdkIlFolderPath) rootFolder: $(microsoftNetSdkIlFolderPath)
includeRootFolder: false includeRootFolder: false
archiveType: $(archiveType) archiveType: tar
tarCompression: $(tarCompression) tarCompression: gz
archiveExtension: $(archiveExtension) archiveExtension: '.tar.gz'
artifactName: $(microsoftNetSdkIlArtifactName) artifactName: $(microsoftNetSdkIlArtifactName)
displayName: 'Microsoft.NET.Sdk.IL package' displayName: 'Microsoft.NET.Sdk.IL package'
@ -157,6 +155,6 @@ jobs:
displayName: Publish Logs displayName: Publish Logs
inputs: inputs:
targetPath: $(Build.SourcesDirectory)/artifacts/log targetPath: $(Build.SourcesDirectory)/artifacts/log
artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}' artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_AnyOS_AnyCPU_$(buildConfig)_Lib${{ parameters.liveLibrariesBuildConfig }}_${{ parameters.testGroup }}'
continueOnError: true continueOnError: true
condition: always() condition: always()

View file

@ -3,8 +3,6 @@ parameters:
archType: '' archType: ''
osGroup: '' osGroup: ''
osSubgroup: '' osSubgroup: ''
managedTestBuildOsGroup: ''
managedTestBuildOsSubgroup: ''
container: '' container: ''
testGroup: '' testGroup: ''
crossrootfsDir: '' crossrootfsDir: ''
@ -37,8 +35,6 @@ jobs:
archType: ${{ parameters.archType }} archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }} osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }} osSubgroup: ${{ parameters.osSubgroup }}
managedTestBuildOsGroup: ${{ parameters.managedTestBuildOsGroup }}
managedTestBuildOsSubgroup: ${{ parameters.managedTestBuildOsSubgroup }}
container: ${{ parameters.container }} container: ${{ parameters.container }}
testGroup: ${{ parameters.testGroup }} testGroup: ${{ parameters.testGroup }}
crossrootfsDir: ${{ parameters.crossrootfsDir }} crossrootfsDir: ${{ parameters.crossrootfsDir }}
@ -57,9 +53,9 @@ jobs:
dependsOn: dependsOn:
- ${{ if ne(parameters.corefxTests, true) }}: - ${{ if ne(parameters.corefxTests, true) }}:
- ${{ if eq(parameters.testGroup, 'innerloop') }}: - ${{ if eq(parameters.testGroup, 'innerloop') }}:
- '${{ parameters.runtimeFlavor }}_common_test_build_p0_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}' - '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{parameters.buildConfig }}'
- ${{ if ne(parameters.testGroup, 'innerloop') }}: - ${{ if ne(parameters.testGroup, 'innerloop') }}:
- '${{ parameters.runtimeFlavor }}_common_test_build_p1_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{parameters.buildConfig }}' - '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}'
- ${{ if ne(parameters.stagedBuild, true) }}: - ${{ if ne(parameters.stagedBuild, true) }}:
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
@ -195,9 +191,9 @@ jobs:
- template: /eng/pipelines/common/download-artifact-step.yml - template: /eng/pipelines/common/download-artifact-step.yml
parameters: parameters:
unpackFolder: '$(managedTestArtifactRootFolderPath)' unpackFolder: '$(managedTestArtifactRootFolderPath)'
artifactFileName: '$(managedTestArtifactName)$(archiveExtension)' artifactFileName: '$(managedGenericTestArtifactName).tar.gz'
artifactName: '$(managedTestArtifactName)' artifactName: '$(managedGenericTestArtifactName)'
displayName: 'managed test artifacts (built on ${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }})' displayName: 'generic managed test artifacts'
# Download product binaries directory # Download product binaries directory
@ -218,13 +214,14 @@ jobs:
artifactName: '$(coreClrProductArtifactName)' artifactName: '$(coreClrProductArtifactName)'
displayName: 'CoreCLR product download for Mono' displayName: 'CoreCLR product download for Mono'
# Download and unzip the Microsoft.NET.Sdk.IL package needed for traversing # Download and unzip the Microsoft.NET.Sdk.IL package needed for traversing
# ilproj test projects during copynativeonly. # ilproj test projects during copynativeonly.
- ${{ if ne(parameters.corefxTests, true) }}: - ${{ if ne(parameters.corefxTests, true) }}:
- template: /eng/pipelines/common/download-artifact-step.yml - template: /eng/pipelines/common/download-artifact-step.yml
parameters: parameters:
unpackFolder: '$(microsoftNetSdkIlFolderPath)' unpackFolder: '$(microsoftNetSdkIlFolderPath)'
artifactFileName: '$(microsoftNetSdkIlArtifactName)$(archiveExtension)' artifactFileName: '$(microsoftNetSdkIlArtifactName).tar.gz'
artifactName: '$(microsoftNetSdkIlArtifactName)' artifactName: '$(microsoftNetSdkIlArtifactName)'
displayName: 'Microsoft.NET.Sdk.IL package' displayName: 'Microsoft.NET.Sdk.IL package'
@ -245,7 +242,7 @@ jobs:
# the native artifacts to the final test folders is dependent on availability of the # the native artifacts to the final test folders is dependent on availability of the
# managed test artifacts. # managed test artifacts.
- ${{ if ne(parameters.corefxTests, true) }}: - ${{ if ne(parameters.corefxTests, true) }}:
- script: $(coreClrRepoRootDir)build-test$(scriptExt) copynativeonly $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg) - script: $(coreClrRepoRootDir)build-test$(scriptExt) skipstressdependencies copynativeonly $(crossgenArg) $(buildConfig) $(archType) $(priorityArg) $(librariesOverrideArg)
displayName: Copy native test components to test output folder displayName: Copy native test components to test output folder
@ -260,9 +257,15 @@ jobs:
displayName: Generate test wrappers displayName: Generate test wrappers
# Compose the Core_Root folder containing all artifacts needed for running
# CoreCLR tests.
- script: $(coreClrRepoRootDir)build-test$(scriptExt) generatelayoutonly $(runtimeFlavorArgs) $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
displayName: Generate CORE_ROOT
# Crossgen framework assemblies prior to triggering readyToRun execution runs. # Crossgen framework assemblies prior to triggering readyToRun execution runs.
- ${{ if eq(parameters.readyToRun, true) }}: - ${{ if eq(parameters.readyToRun, true) }}:
- script: $(coreClrRepoRootDir)build-test$(scriptExt) skipmanaged skipnative $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg) - script: $(coreClrRepoRootDir)build-test$(scriptExt) crossgenframeworkonly $(crossgenArg) $(buildConfig) $(archType) $(crossArg) $(priorityArg) $(librariesOverrideArg)
displayName: Crossgen framework assemblies displayName: Crossgen framework assemblies
# Overwrite coreclr runtime binaries with mono ones # Overwrite coreclr runtime binaries with mono ones

View file

@ -98,13 +98,7 @@ jobs:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- Linux_arm - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Linux_arm64
- OSX_x64
- Windows_NT_arm
- Windows_NT_arm64
- Windows_NT_x64
- Windows_NT_x86
testGroup: outerloop testGroup: outerloop
jobParameters: jobParameters:
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -24,6 +24,7 @@ jobs:
- Linux_x64 - Linux_x64
- OSX_x64 - OSX_x64
- Windows_NT_x64 - Windows_NT_x64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: innerloop testGroup: innerloop
@ -32,8 +33,7 @@ jobs:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- OSX_x64 - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Windows_NT_x64
jobParameters: jobParameters:
testGroup: innerloop testGroup: innerloop
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -24,6 +24,7 @@ jobs:
- Linux_x64 - Linux_x64
- OSX_x64 - OSX_x64
- Windows_NT_x64 - Windows_NT_x64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: outerloop testGroup: outerloop
@ -32,8 +33,7 @@ jobs:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- OSX_x64 - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Windows_NT_x64
jobParameters: jobParameters:
testGroup: outerloop testGroup: outerloop
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -24,6 +24,7 @@ jobs:
- Linux_x64 - Linux_x64
- OSX_x64 - OSX_x64
- Windows_NT_x64 - Windows_NT_x64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: innerloop testGroup: innerloop
@ -32,8 +33,7 @@ jobs:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- OSX_x64 - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Windows_NT_x64
jobParameters: jobParameters:
testGroup: innerloop testGroup: innerloop
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -25,6 +25,8 @@ jobs:
- Linux_arm64 - Linux_arm64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_arm64 - Windows_NT_arm64
- OSX_x64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: gc-longrunning testGroup: gc-longrunning
@ -33,10 +35,7 @@ jobs:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: release buildConfig: release
platforms: platforms:
- Linux_x64 - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Linux_arm64
- Windows_NT_x64
- Windows_NT_arm64
jobParameters: jobParameters:
testGroup: gc-longrunning testGroup: gc-longrunning
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release
@ -52,7 +51,6 @@ jobs:
- Windows_NT_arm64 - Windows_NT_arm64
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
managedOsxBuild: false
jobParameters: jobParameters:
testGroup: gc-longrunning testGroup: gc-longrunning
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -26,12 +26,23 @@ jobs:
- Linux_arm64 - Linux_arm64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_arm64 - Windows_NT_arm64
- OSX_x64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: gc-simulator testGroup: gc-simulator
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: release
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: gc-simulator
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: release buildConfig: release
platforms: platforms:
# disable Linux x64 for now untill OOMs are resolved. # disable Linux x64 for now untill OOMs are resolved.

View file

@ -21,18 +21,27 @@ jobs:
jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
buildConfig: checked buildConfig: checked
platformGroup: gcstress platformGroup: gcstress
managedOsxBuild: false platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: gcstress-extra testGroup: gcstress-extra
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: gcstress-extra
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platformGroup: gcstress platformGroup: gcstress
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
managedOsxBuild: false
jobParameters: jobParameters:
testGroup: gcstress-extra testGroup: gcstress-extra
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -21,17 +21,27 @@ jobs:
jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
buildConfig: checked buildConfig: checked
platformGroup: gcstress platformGroup: gcstress
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: gcstress0x3-gcstress0xc testGroup: gcstress0x3-gcstress0xc
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: gcstress0x3-gcstress0xc
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platformGroup: gcstress platformGroup: gcstress
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
managedOsxBuild: false
jobParameters: jobParameters:
testGroup: gcstress0x3-gcstress0xc testGroup: gcstress0x3-gcstress0xc
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -23,19 +23,28 @@ jobs:
platforms: platforms:
- Linux_x64 - Linux_x64
- Windows_NT_x64 - Windows_NT_x64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: jit-experimental testGroup: jit-experimental
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: jit-experimental
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- Linux_x64 - Linux_x64
- Windows_NT_x64 - Windows_NT_x64
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
managedOsxBuild: false
jobParameters: jobParameters:
testGroup: jit-experimental testGroup: jit-experimental
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -23,12 +23,22 @@ jobs:
platforms: platforms:
- Linux_arm64 - Linux_arm64
- Windows_NT_arm64 - Windows_NT_arm64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: jitstress-isas-arm testGroup: jitstress-isas-arm
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: jitstress-isas-arm
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- Linux_arm64 - Linux_arm64

View file

@ -25,6 +25,7 @@ jobs:
- OSX_x64 - OSX_x64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_x86 - Windows_NT_x86
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: jitstress-isas-x86 testGroup: jitstress-isas-x86
@ -33,9 +34,7 @@ jobs:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- OSX_x64 - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Windows_NT_x64
- Windows_NT_x86
jobParameters: jobParameters:
testGroup: jitstress-isas-x86 testGroup: jitstress-isas-x86
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -30,12 +30,22 @@ jobs:
- Windows_NT_x86 - Windows_NT_x86
- Windows_NT_arm - Windows_NT_arm
- Windows_NT_arm64 - Windows_NT_arm64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: jitstress testGroup: jitstress
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: jitstress
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
# Linux tests are built on the OSX machines. # Linux tests are built on the OSX machines.

View file

@ -30,12 +30,22 @@ jobs:
- Windows_NT_x86 - Windows_NT_x86
- Windows_NT_arm - Windows_NT_arm
- Windows_NT_arm64 - Windows_NT_arm64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: jitstress2-jitstressregs testGroup: jitstress2-jitstressregs
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: checked
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
# Linux tests are built on the OSX machines. # Linux tests are built on the OSX machines.

View file

@ -24,18 +24,27 @@ jobs:
- Linux_x64 - Linux_x64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_x86 - Windows_NT_x86
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: jitstressregs-x86 testGroup: jitstressregs-x86
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: jitstressregs-x86
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- Linux_x64 - Linux_x64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_x86 - Windows_NT_x86
managedOsxBuild: false
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
jobParameters: jobParameters:

View file

@ -30,12 +30,22 @@ jobs:
- Windows_NT_x86 - Windows_NT_x86
- Windows_NT_arm - Windows_NT_arm
- Windows_NT_arm64 - Windows_NT_arm64
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: jitstressregs testGroup: jitstressregs
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: jitstressregs
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
# Linux tests are built on the OSX machines. # Linux tests are built on the OSX machines.

View file

@ -21,17 +21,27 @@ jobs:
jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
buildConfig: checked buildConfig: checked
platformGroup: gcstress platformGroup: gcstress
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: r2r-extra testGroup: r2r-extra
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: r2r-extra
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platformGroup: gcstress # r2r-extra testGroup runs gcstress15 scenario platformGroup: gcstress # r2r-extra testGroup runs gcstress15 scenario
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
managedOsxBuild: false
jobParameters: jobParameters:
testGroup: r2r-extra testGroup: r2r-extra
readyToRun: true readyToRun: true

View file

@ -28,12 +28,22 @@ jobs:
- Windows_NT_arm64 - Windows_NT_arm64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_x86 - Windows_NT_x86
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: outerloop testGroup: outerloop
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: outerloop
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- Linux_arm - Linux_arm
@ -45,7 +55,6 @@ jobs:
- Windows_NT_x86 - Windows_NT_x86
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
managedOsxBuild: false
jobParameters: jobParameters:
testGroup: outerloop testGroup: outerloop
readyToRun: true readyToRun: true

View file

@ -34,7 +34,8 @@ jobs:
parameters: parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: release buildConfig: release
platformGroup: all platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: outerloop testGroup: outerloop
liveLibrariesBuildConfig: Release liveLibrariesBuildConfig: Release

View file

@ -24,18 +24,27 @@ jobs:
- Linux_x64 - Linux_x64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_x86 - Windows_NT_x86
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters: jobParameters:
testGroup: outerloop testGroup: outerloop
- template: /eng/pipelines/common/platform-matrix.yml - template: /eng/pipelines/common/platform-matrix.yml
parameters: parameters:
jobTemplate: /eng/pipelines/coreclr/templates/test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
jobParameters:
testGroup: outerloop
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- Linux_x64 - Linux_x64
- Windows_NT_x64 - Windows_NT_x64
- Windows_NT_x86 - Windows_NT_x86
managedOsxBuild: false
helixQueueGroup: ci helixQueueGroup: ci
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
jobParameters: jobParameters:

View file

@ -149,7 +149,7 @@ jobs:
displayName: Build managed product components and packages displayName: Build managed product components and packages
# Build native test components # Build native test components
- script: $(coreClrRepoRootDir)build-test$(scriptExt) skipmanaged $(buildConfig) $(archType) $(crossArg) $(osArg) $(priorityArg) $(compilerArg) skipgeneratelayout - script: $(coreClrRepoRootDir)build-test$(scriptExt) skipstressdependencies skipmanaged skipgeneratelayout $(buildConfig) $(archType) $(crossArg) $(osArg) $(priorityArg) $(compilerArg)
displayName: Build native test components displayName: Build native test components
# Sign on Windows # Sign on Windows

View file

@ -1,64 +0,0 @@
parameters:
buildConfig: ''
archType: ''
osGroup: ''
osSubgroup: ''
managedTestBuildOsGroup: ''
managedTestBuildOsSubgroup: ''
container: ''
testGroup: ''
readyToRun: false
helixQueues: ''
crossrootfsDir: ''
# If true, run the corefx tests instead of the coreclr ones
corefxTests: false
liveLibrariesBuildConfig: ''
displayNameArgs: ''
runInUnloadableContext: false
condition: true
stagedBuild: false
variables: {}
pool: ''
### Test job
### Each test job depends on a corresponding build job with the same
### buildConfig and archType.
jobs:
- ${{ if and(ne(parameters.corefxTests, true), eq(parameters.osSubgroup, parameters.managedTestBuildOsSubgroup), eq(parameters.osGroup, parameters.managedTestBuildOsGroup)) }}:
- template: /eng/pipelines/common/templates/runtimes/build-test-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
archType: ${{ parameters.archType }}
osGroup: ${{ parameters.managedTestBuildOsGroup }}
osSubgroup: ${{ parameters.managedTestBuildOsSubgroup }}
container: ${{ parameters.container }}
testGroup: ${{ parameters.testGroup }}
displayNameArgs: ${{ parameters.displayNameArgs }}
condition: ${{ parameters.condition }}
stagedBuild: ${{ parameters.stagedBuild }}
variables: ${{ parameters.variables }}
pool: ${{ parameters.pool }}
- template: /eng/pipelines/common/templates/runtimes/run-test-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
managedTestBuildOsGroup: ${{ parameters.managedTestBuildOsGroup }}
managedTestBuildOsSubgroup: ${{ parameters.managedTestBuildOsSubgroup }}
container: ${{ parameters.container }}
testGroup: ${{ parameters.testGroup }}
crossrootfsDir: ${{ parameters.crossrootfsDir }}
readyToRun: ${{ parameters.readyToRun }}
helixQueues: ${{ parameters.helixQueues }}
corefxTests: ${{ parameters.coreFxTests }}
displayNameArgs: ${{ parameters.displayNameArgs }}
stagedBuild: ${{ parameters.stagedBuild }}
runInUnloadableContext: ${{ parameters.runInUnloadableContext }}
variables: ${{ parameters.variables }}
pool: ${{ parameters.pool }}

View file

@ -3,8 +3,6 @@ parameters:
archType: '' archType: ''
osGroup: '' osGroup: ''
osSubgroup: '' osSubgroup: ''
managedTestBuildOsGroup: ''
managedTestBuildOsSubgroup: ''
name: '' name: ''
helixType: '(unspecified)' helixType: '(unspecified)'
container: '' container: ''
@ -54,11 +52,11 @@ jobs:
variables: variables:
- ${{ if ne(parameters.testGroup, '') }}: - ${{ if ne(parameters.testGroup, '') }}:
- name: testArtifactRootName - name: testArtifactRootName
value: ${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.testGroup }} value: ${{ parameters.Group }}${{ parameters.Subgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.testGroup }}
- ${{ if eq(parameters.testGroup, '') }}: - ${{ if eq(parameters.testGroup, '') }}:
- name: testArtifactRootName - name: testArtifactRootName
value: ${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }} value: ${{ parameters.Group }}${{ parameters.Subgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}
- name: coreClrRepoRoot - name: coreClrRepoRoot
value: '$(Build.SourcesDirectory)/src/coreclr' value: '$(Build.SourcesDirectory)/src/coreclr'
@ -86,8 +84,8 @@ jobs:
- name: corelibProductArtifactName - name: corelibProductArtifactName
value: 'CoreLib_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)' value: 'CoreLib_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: managedTestArtifactName - name: managedGenericTestArtifactName
value: 'CoreCLRManagedTestArtifacts_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)' value: 'CoreCLRManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)'
- name: managedTestArtifactRootFolderPath - name: managedTestArtifactRootFolderPath
value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)' value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)'
@ -102,7 +100,7 @@ jobs:
value: '$(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il' value: '$(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il'
- name: microsoftNetSdkIlArtifactName - name: microsoftNetSdkIlArtifactName
value: 'MicrosoftNetSdkIlPackage_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)' value: 'MicrosoftNetSdkIlPackage_AnyOS_AnyCPU_$(buildConfig)'
- name: priorityArg - name: priorityArg
value: '' value: ''

View file

@ -65,14 +65,14 @@ jobs:
- name: managedTestArtifactRootFolderPath - name: managedTestArtifactRootFolderPath
value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)' value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)'
- name: managedTestArtifactName - name: managedGenericTestArtifactName
value: 'CoreCLRManagedTestArtifacts_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)' value: 'CoreCLRManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)'
- name: microsoftNetSdkIlFolderPath - name: microsoftNetSdkIlFolderPath
value: '$(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il' value: '$(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il'
- name: microsoftNetSdkIlArtifactName - name: microsoftNetSdkIlArtifactName
value: 'MicrosoftNetSdkIlPackage_${{ parameters.managedTestBuildOsGroup }}${{ parameters.managedTestBuildOsSubgroup }}_$(archType)_$(buildConfig)' value: 'MicrosoftNetSdkIlPackage_AnyOS_AnyCPU_$(buildConfig)'
- name: monoRepoRoot - name: monoRepoRoot
value: '$(Build.SourcesDirectory)/src/mono' value: '$(Build.SourcesDirectory)/src/mono'

View file

@ -689,31 +689,7 @@ jobs:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked buildConfig: checked
platforms: platforms:
- Linux_arm - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Windows_NT_x86
- Windows_NT_arm
- Windows_NT_arm64
jobParameters:
testGroup: innerloop
liveLibrariesBuildConfig: Release
condition: >-
or(
eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
eq(variables['isFullMatrix'], true))
#
# CoreCLR Test builds using live libraries debug build
# Only when CoreCLR is changed
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
buildConfig: checked
platforms:
- OSX_x64
- Linux_x64
- Linux_arm64
- Windows_NT_x64
jobParameters: jobParameters:
testGroup: innerloop testGroup: innerloop
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
@ -773,8 +749,7 @@ jobs:
buildConfig: release buildConfig: release
runtimeFlavor: mono runtimeFlavor: mono
platforms: platforms:
- OSX_x64 - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
- Linux_arm64
jobParameters: jobParameters:
testGroup: innerloop testGroup: innerloop
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}

View file

@ -51,6 +51,7 @@ set __UnprocessedBuildArgs=
set __CommonMSBuildArgs= set __CommonMSBuildArgs=
set __SkipRestorePackages= set __SkipRestorePackages=
set __SkipStressDependencies=
set __SkipManaged= set __SkipManaged=
set __SkipTestWrappers= set __SkipTestWrappers=
set __BuildTestWrappersOnly= set __BuildTestWrappersOnly=
@ -98,13 +99,20 @@ if /i "%1" == "checked" (set __BuildType=Checked&set processedArgs
if /i "%1" == "ci" (set __ArcadeScriptArgs="-ci"&set __ErrMsgPrefix=##vso[task.logissue type=error]&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "ci" (set __ArcadeScriptArgs="-ci"&set __ErrMsgPrefix=##vso[task.logissue type=error]&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "skipstressdependencies" (set __SkipStressDependencies=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "skiprestorepackages" (set __SkipRestorePackages=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "skipmanaged" (set __SkipManaged=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skipmanaged" (set __SkipManaged=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "skipnative" (set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skipnative" (set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "skiptestwrappers" (set __SkipTestWrappers=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "skiptestwrappers" (set __SkipTestWrappers=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "skipgeneratelayout" (set __SkipGenerateLayout=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "copynativeonly" (set __CopyNativeTestBinaries=1&set __SkipStressDependencies=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set __SkipGenerateLayout=1&set __SkipCrossgenFramework=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "generatelayoutonly" (set __SkipManaged=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "buildtesthostonly" (set __SkipNative=1&set __SkipManaged=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "buildtesthostonly" (set __SkipNative=1&set __SkipManaged=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "buildtestwrappersonly" (set __SkipNative=1&set __SkipManaged=1&set __BuildTestWrappersOnly=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "buildtestwrappersonly" (set __SkipNative=1&set __SkipManaged=1&set __BuildTestWrappersOnly=1&set __SkipGenerateLayout=1&set __SkipStressDependencies=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "crossgenframeworkonly" (set __SkipRestorePackages=1&set __SkipStressDependencies=1&set __SkipNative=1&set __SkipManaged=1&set __SkipGenerateLayout=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "buildagainstpackages" (echo error: Remove /BuildAgainstPackages switch&&exit /b1) if /i "%1" == "buildagainstpackages" (echo error: Remove /BuildAgainstPackages switch&&exit /b1)
if /i "%1" == "skiprestorepackages" (set __SkipRestorePackages=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "crossgen" (set __DoCrossgen=1&set __TestBuildMode=crossgen&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "crossgen" (set __DoCrossgen=1&set __TestBuildMode=crossgen&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "crossgen2" (set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "crossgen2" (set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "composite" (set __CompositeBuildMode=1&set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "composite" (set __CompositeBuildMode=1&set __DoCrossgen2=1&set __TestBuildMode=crossgen2&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
@ -112,11 +120,7 @@ if /i "%1" == "runtimeid" (set __RuntimeId=%2&set processedArgs=!pro
if /i "%1" == "targetsNonWindows" (set __TargetsWindows=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "targetsNonWindows" (set __TargetsWindows=0&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "Exclude" (set __Exclude=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) if /i "%1" == "Exclude" (set __Exclude=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop)
if /i "%1" == "-priority" (set __Priority=%2&shift&set processedArgs=!processedArgs! %1=%2&shift&goto Arg_Loop) if /i "%1" == "-priority" (set __Priority=%2&shift&set processedArgs=!processedArgs! %1=%2&shift&goto Arg_Loop)
if /i "%1" == "targetGeneric" (set "__BuildNeedTargetArg=/p:CLRTestNeedTargetToBuild=%1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "allTargets" (set "__BuildNeedTargetArg=/p:CLRTestBuildAllTargets=%1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "targetSpecific" (set "__BuildNeedTargetArg=/p:CLRTestNeedTargetToBuild=%1"&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "copynativeonly" (set __CopyNativeTestBinaries=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set __SkipCrossgenFramework=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "skipgeneratelayout" (set __SkipGenerateLayout=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "generatelayoutonly" (set __SkipManaged=1&set __SkipNative=1&set __CopyNativeProjectsAfterCombinedTestBuild=false&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
if /i "%1" == "-excludemonofailures" (set __Mono=1&set processedArgs=!processedArgs!&shift&goto Arg_Loop) if /i "%1" == "-excludemonofailures" (set __Mono=1&set processedArgs=!processedArgs!&shift&goto Arg_Loop)
if /i "%1" == "--" (set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "--" (set processedArgs=!processedArgs! %1&shift&goto Arg_Loop)
@ -199,11 +203,15 @@ REM === Resolve runtime dependences
REM === REM ===
REM ========================================================================================= REM =========================================================================================
if defined __SkipStressDependencies goto skipstressdependencies
call "%__TestDir%\setup-stress-dependencies.cmd" /arch %__BuildArch% /outputdir %__BinDir% call "%__TestDir%\setup-stress-dependencies.cmd" /arch %__BuildArch% /outputdir %__BinDir%
if errorlevel 1 ( if errorlevel 1 (
echo %__ErrMsgPrefix%%__MsgPrefix%Error: setup-stress-dependencies failed. echo %__ErrMsgPrefix%%__MsgPrefix%Error: setup-stress-dependencies failed.
goto :Exit_Failure goto :Exit_Failure
) )
:skipstressdependencies
@if defined _echo @echo on @if defined _echo @echo on
REM ========================================================================================= REM =========================================================================================
@ -264,6 +272,8 @@ if not exist "%__NativeTestIntermediatesDir%\CMakeCache.txt" (
exit /b 1 exit /b 1
) )
echo Environment setup
set __BuildLogRootName=Tests_Native set __BuildLogRootName=Tests_Native
set __BuildLog="%__LogsDir%\!__BuildLogRootName!_%__TargetOS%__%__BuildArch%__%__BuildType%.log" set __BuildLog="%__LogsDir%\!__BuildLogRootName!_%__TargetOS%__%__BuildArch%__%__BuildType%.log"
set __BuildWrn="%__LogsDir%\!__BuildLogRootName!_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn" set __BuildWrn="%__LogsDir%\!__BuildLogRootName!_%__TargetOS%__%__BuildArch%__%__BuildType%.wrn"
@ -422,7 +432,7 @@ if errorlevel 1 (
:SkipManagedBuild :SkipManagedBuild
if "%__SkipGenerateLayout%" == "1" goto TestBuildDone if "%__SkipGenerateLayout%" == "1" goto SkipGenerateLayout
REM ========================================================================================= REM =========================================================================================
REM === REM ===
@ -476,6 +486,8 @@ if errorlevel 1 (
exit /b 1 exit /b 1
) )
:SkipGenerateLayout
REM ========================================================================================= REM =========================================================================================
REM === REM ===
REM === Create test wrappers. REM === Create test wrappers.
@ -611,8 +623,7 @@ echo -priority=^<N^> : specify a set of tests that will be built and run, with p
echo 0: Build only priority 0 cases as essential testcases (default) echo 0: Build only priority 0 cases as essential testcases (default)
echo 1: Build all tests with priority 0 and 1 echo 1: Build all tests with priority 0 and 1
echo 666: Build all tests with priority 0, 1 ... 666 echo 666: Build all tests with priority 0, 1 ... 666
echo targetGeneric: Only build tests which run on any target platform. echo allTargets: Build managed tests for all target platforms.
echo targetSpecific: Only build tests which run on a specific target platform.
echo -verbose: enables detailed file logging for the msbuild tasks into the msbuild log file. echo -verbose: enables detailed file logging for the msbuild tasks into the msbuild log file.
exit /b 1 exit /b 1

View file

@ -124,7 +124,7 @@ generate_layout()
build_MSBuild_projects "Tests_Overlay_Managed" "${__ProjectDir}/tests/src/runtest.proj" "Creating test overlay" "/t:CreateTestOverlay" build_MSBuild_projects "Tests_Overlay_Managed" "${__ProjectDir}/tests/src/runtest.proj" "Creating test overlay" "/t:CreateTestOverlay"
if [[ "$__TargetOS" != "OSX" ]]; then if [[ "$__TargetOS" != "OSX" && "$__SkipStressDependencies" == 0 ]]; then
nextCommand="\"$__TestDir/setup-stress-dependencies.sh\" --arch=$__BuildArch --outputDir=$CORE_ROOT" nextCommand="\"$__TestDir/setup-stress-dependencies.sh\" --arch=$__BuildArch --outputDir=$CORE_ROOT"
echo "Resolve runtime dependences via $nextCommand" echo "Resolve runtime dependences via $nextCommand"
eval $nextCommand eval $nextCommand
@ -504,21 +504,26 @@ build_MSBuild_projects()
fi fi
} }
usage_list=("-buildtestwrappersonly: only build the test wrappers.") usage_list=()
usage_list+=("-skiprestorepackages: skip package restore.")
usage_list+=("-skipstressdependencies: Don't install stress dependencies.")
usage_list+=("-skipgeneratelayout: Do not generate the Core_Root layout.")
usage_list+=("-skiptestwrappers: Don't generate test wrappers.") usage_list+=("-skiptestwrappers: Don't generate test wrappers.")
usage_list+=("-buildtestwrappersonly: only build the test wrappers.")
usage_list+=("-copynativeonly: Only copy the native test binaries to the managed output. Do not build the native or managed tests.") usage_list+=("-copynativeonly: Only copy the native test binaries to the managed output. Do not build the native or managed tests.")
usage_list+=("-crossgen: Precompiles the framework managed assemblies in coreroot.")
usage_list+=("-crossgen2: Precompiles the framework managed assemblies in coreroot using the Crossgen2 compiler.")
usage_list+=("-generatetesthostonly: only generate the test host.") usage_list+=("-generatetesthostonly: only generate the test host.")
usage_list+=("-generatelayoutonly: only pull down dependencies and build coreroot.") usage_list+=("-generatelayoutonly: only pull down dependencies and build coreroot.")
usage_list+=("-crossgenframeworkonly: only compile the framework in CORE_ROOT with Crossgen / Crossgen2.")
usage_list+=("-crossgen: Precompiles the framework managed assemblies in coreroot.")
usage_list+=("-crossgen2: Precompiles the framework managed assemblies in coreroot using the Crossgen2 compiler.")
usage_list+=("-priority1: include priority=1 tests in the build.") usage_list+=("-priority1: include priority=1 tests in the build.")
usage_list+=("-targetGeneric: Only build tests which run on any target platform.") usage_list+=("-allTargets: Build managed tests for all target platforms.")
usage_list+=("-targetSpecific: Only build tests which run on a specific target platform.")
usage_list+=("-rebuild: if tests have already been built - rebuild them.") usage_list+=("-rebuild: if tests have already been built - rebuild them.")
usage_list+=("-runtests: run tests after building them.") usage_list+=("-runtests: run tests after building them.")
usage_list+=("-skiprestorepackages: skip package restore.")
usage_list+=("-skipgeneratelayout: Do not generate the Core_Root layout.")
usage_list+=("-excludemonofailures: Mark the build as running on Mono runtime so that mono-specific issues are honored.") usage_list+=("-excludemonofailures: Mark the build as running on Mono runtime so that mono-specific issues are honored.")
# Obtain the location of the bash script to figure out where the root of the repo is. # Obtain the location of the bash script to figure out where the root of the repo is.
@ -537,13 +542,22 @@ handle_arguments_local() {
;; ;;
copynativeonly|-copynativeonly) copynativeonly|-copynativeonly)
__SkipStressDependencies=1
__SkipNative=1 __SkipNative=1
__SkipManaged=1 __SkipManaged=1
__CopyNativeTestBinaries=1 __CopyNativeTestBinaries=1
__CopyNativeProjectsAfterCombinedTestBuild=true __CopyNativeProjectsAfterCombinedTestBuild=true
__SkipGenerateLayout=1
__SkipCrossgenFramework=1 __SkipCrossgenFramework=1
;; ;;
crossgenframeworkonly|-crossgenframeworkonly)
__SkipStressDependencies=1
__SkipNative=1
__SkipManaged=1
__SkipGenerateLayout=1
;;
crossgen|-crossgen) crossgen|-crossgen)
__DoCrossgen=1 __DoCrossgen=1
__TestBuildMode=crossgen __TestBuildMode=crossgen
@ -573,12 +587,8 @@ handle_arguments_local() {
__UnprocessedBuildArgs+=("/p:CLRTestPriorityToBuild=1") __UnprocessedBuildArgs+=("/p:CLRTestPriorityToBuild=1")
;; ;;
targetGeneric|-targetGeneric) allTargets|-allTargets)
__UnprocessedBuildArgs+=("/p:CLRTestNeedTargetToBuild=targetGeneric") __UnprocessedBuildArgs+=("/p:CLRTestBuildAllTargets=allTargets")
;;
targetSpecific|-targetSpecific)
__UnprocessedBuildArgs+=("/p:CLRTestNeedTargetToBuild=targetSpecific")
;; ;;
rebuild|-rebuild) rebuild|-rebuild)
@ -593,6 +603,10 @@ handle_arguments_local() {
__SkipRestorePackages=1 __SkipRestorePackages=1
;; ;;
skipstressdependencies|-skipstressdependencies)
__SkipStressDependencies=1
;;
skipgeneratelayout|-skipgeneratelayout) skipgeneratelayout|-skipgeneratelayout)
__SkipGenerateLayout=1 __SkipGenerateLayout=1
;; ;;
@ -645,6 +659,7 @@ __SkipManaged=0
__SkipNative=0 __SkipNative=0
__SkipRestore="" __SkipRestore=""
__SkipRestorePackages=0 __SkipRestorePackages=0
__SkipStressDependencies=0
__SkipCrossgenFramework=0 __SkipCrossgenFramework=0
__SourceDir="$__ProjectDir/src" __SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs= __UnprocessedBuildArgs=

View file

@ -274,6 +274,13 @@
<Link>Common\Interop\Windows\OleAut32\Interop.SysAllocStringByteLen.cs</Link> <Link>Common\Interop\Windows\OleAut32\Interop.SysAllocStringByteLen.cs</Link>
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<!-- These classes are only used for FeatureCominterop, but they are referenced by tests
in order to allow tests to be built on all platforms, these classes are included for all
platforms, but throw PlatformNotSupported() for unsupported platforms -->
<ItemGroup>
<Compile Include="$(BclSourcesRoot)\Internal\Runtime\InteropServices\ComActivator.cs" />
<Compile Include="$(BclSourcesRoot)\Internal\Runtime\InteropServices\InMemoryAssemblyLoader.cs" />
</ItemGroup>
<ItemGroup Condition="'$(FeatureUtf8String)' == 'true'"> <ItemGroup Condition="'$(FeatureUtf8String)' == 'true'">
<Compile Include="$(BclSourcesRoot)\System\Utf8String.CoreCLR.cs" /> <Compile Include="$(BclSourcesRoot)\System\Utf8String.CoreCLR.cs" />
</ItemGroup> </ItemGroup>
@ -293,7 +300,6 @@
<Compile Include="$(CommonPath)System\Runtime\InteropServices\Variant.cs" Condition="'$(FeatureClassicCominterop)' == 'true'"> <Compile Include="$(CommonPath)System\Runtime\InteropServices\Variant.cs" Condition="'$(FeatureClassicCominterop)' == 'true'">
<Link>Common\System\Runtime\InteropServices\Variant.cs</Link> <Link>Common\System\Runtime\InteropServices\Variant.cs</Link>
</Compile> </Compile>
<Compile Include="$(BclSourcesRoot)\Internal\Runtime\InteropServices\ComActivator.cs" Condition="'$(FeatureCominteropUnmanagedActivation)' == 'true'" />
<Compile Include="$(BclSourcesRoot)\Microsoft\Win32\OAVariantLib.cs" Condition="'$(FeatureClassicCominterop)' == 'true'" /> <Compile Include="$(BclSourcesRoot)\Microsoft\Win32\OAVariantLib.cs" Condition="'$(FeatureClassicCominterop)' == 'true'" />
<Compile Include="$(BclSourcesRoot)\System\__ComObject.cs" /> <Compile Include="$(BclSourcesRoot)\System\__ComObject.cs" />
<Compile Include="$(BclSourcesRoot)\System\Runtime\InteropServices\ComEventsHelper.cs" Condition="'$(FeatureClassicCominterop)' == 'true'" /> <Compile Include="$(BclSourcesRoot)\System\Runtime\InteropServices\ComEventsHelper.cs" Condition="'$(FeatureClassicCominterop)' == 'true'" />
@ -314,7 +320,6 @@
<Compile Include="$(BclSourcesRoot)\System\Threading\ClrThreadPoolBoundHandle.Unix.cs" /> <Compile Include="$(BclSourcesRoot)\System\Threading\ClrThreadPoolBoundHandle.Unix.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup Condition="'$(TargetsWindows)' == 'true'"> <ItemGroup Condition="'$(TargetsWindows)' == 'true'">
<Compile Include="$(BclSourcesRoot)\Internal\Runtime\InteropServices\InMemoryAssemblyLoader.cs" />
<Compile Include="$(BclSourcesRoot)\System\DateTime.Windows.CoreCLR.cs" /> <Compile Include="$(BclSourcesRoot)\System\DateTime.Windows.CoreCLR.cs" />
<Compile Include="$(CommonPath)Interop\Windows\OleAut32\Interop.VariantClear.cs"> <Compile Include="$(CommonPath)Interop\Windows\OleAut32\Interop.VariantClear.cs">
<Link>Common\Interop\Windows\OleAut32\Interop.VariantClear.cs</Link> <Link>Common\Interop\Windows\OleAut32\Interop.VariantClear.cs</Link>

View file

@ -93,6 +93,7 @@ namespace Internal.Runtime.InteropServices
[CLSCompliant(false)] [CLSCompliant(false)]
public static unsafe ComActivationContext Create(ref ComActivationContextInternal cxtInt) public static unsafe ComActivationContext Create(ref ComActivationContextInternal cxtInt)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
return new ComActivationContext() return new ComActivationContext()
{ {
ClassId = cxtInt.ClassId, ClassId = cxtInt.ClassId,
@ -101,14 +102,19 @@ namespace Internal.Runtime.InteropServices
AssemblyName = Marshal.PtrToStringUni(new IntPtr(cxtInt.AssemblyNameBuffer))!, AssemblyName = Marshal.PtrToStringUni(new IntPtr(cxtInt.AssemblyNameBuffer))!,
TypeName = Marshal.PtrToStringUni(new IntPtr(cxtInt.TypeNameBuffer))! TypeName = Marshal.PtrToStringUni(new IntPtr(cxtInt.TypeNameBuffer))!
}; };
#else
throw new PlatformNotSupportedException();
#endif
} }
} }
public static class ComActivator public static class ComActivator
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// Collection of all ALCs used for COM activation. In the event we want to support // Collection of all ALCs used for COM activation. In the event we want to support
// unloadable COM server ALCs, this will need to be changed. // unloadable COM server ALCs, this will need to be changed.
private static readonly Dictionary<string, AssemblyLoadContext> s_assemblyLoadContexts = new Dictionary<string, AssemblyLoadContext>(StringComparer.InvariantCultureIgnoreCase); private static readonly Dictionary<string, AssemblyLoadContext> s_assemblyLoadContexts = new Dictionary<string, AssemblyLoadContext>(StringComparer.InvariantCultureIgnoreCase);
#endif
/// <summary> /// <summary>
/// Entry point for unmanaged COM activation API from managed code /// Entry point for unmanaged COM activation API from managed code
@ -116,6 +122,7 @@ namespace Internal.Runtime.InteropServices
/// <param name="cxt">Reference to a <see cref="ComActivationContext"/> instance</param> /// <param name="cxt">Reference to a <see cref="ComActivationContext"/> instance</param>
public static object GetClassFactoryForType(ComActivationContext cxt) public static object GetClassFactoryForType(ComActivationContext cxt)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
if (cxt.InterfaceId != typeof(IClassFactory).GUID if (cxt.InterfaceId != typeof(IClassFactory).GUID
&& cxt.InterfaceId != typeof(IClassFactory2).GUID) && cxt.InterfaceId != typeof(IClassFactory2).GUID)
{ {
@ -135,6 +142,9 @@ namespace Internal.Runtime.InteropServices
} }
return new BasicClassFactory(cxt.ClassId, classType); return new BasicClassFactory(cxt.ClassId, classType);
#else
throw new PlatformNotSupportedException();
#endif
} }
/// <summary> /// <summary>
@ -144,6 +154,7 @@ namespace Internal.Runtime.InteropServices
/// <param name="register">true if called for register or false to indicate unregister</param> /// <param name="register">true if called for register or false to indicate unregister</param>
public static void ClassRegistrationScenarioForType(ComActivationContext cxt, bool register) public static void ClassRegistrationScenarioForType(ComActivationContext cxt, bool register)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// Retrieve the attribute type to use to determine if a function is the requested user defined // Retrieve the attribute type to use to determine if a function is the requested user defined
// registration function. // registration function.
string attributeName = register ? "ComRegisterFunctionAttribute" : "ComUnregisterFunctionAttribute"; string attributeName = register ? "ComRegisterFunctionAttribute" : "ComUnregisterFunctionAttribute";
@ -224,6 +235,9 @@ namespace Internal.Runtime.InteropServices
// Go through all the base types // Go through all the base types
currentType = currentType.BaseType; currentType = currentType.BaseType;
} }
#else
throw new PlatformNotSupportedException();
#endif
} }
/// <summary> /// <summary>
@ -234,6 +248,7 @@ namespace Internal.Runtime.InteropServices
[UnmanagedCallersOnly] [UnmanagedCallersOnly]
public static unsafe int GetClassFactoryForTypeInternal(ComActivationContextInternal* pCxtInt) public static unsafe int GetClassFactoryForTypeInternal(ComActivationContextInternal* pCxtInt)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
ref ComActivationContextInternal cxtInt = ref *pCxtInt; ref ComActivationContextInternal cxtInt = ref *pCxtInt;
if (IsLoggingEnabled()) if (IsLoggingEnabled())
@ -261,6 +276,9 @@ $@"{nameof(GetClassFactoryForTypeInternal)} arguments:
} }
return 0; return 0;
#else
throw new PlatformNotSupportedException();
#endif
} }
/// <summary> /// <summary>
@ -271,6 +289,7 @@ $@"{nameof(GetClassFactoryForTypeInternal)} arguments:
[UnmanagedCallersOnly] [UnmanagedCallersOnly]
public static unsafe int RegisterClassForTypeInternal(ComActivationContextInternal* pCxtInt) public static unsafe int RegisterClassForTypeInternal(ComActivationContextInternal* pCxtInt)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
ref ComActivationContextInternal cxtInt = ref *pCxtInt; ref ComActivationContextInternal cxtInt = ref *pCxtInt;
if (IsLoggingEnabled()) if (IsLoggingEnabled())
@ -302,6 +321,9 @@ $@"{nameof(RegisterClassForTypeInternal)} arguments:
} }
return 0; return 0;
#else
throw new PlatformNotSupportedException();
#endif
} }
/// <summary> /// <summary>
@ -311,6 +333,7 @@ $@"{nameof(RegisterClassForTypeInternal)} arguments:
[UnmanagedCallersOnly] [UnmanagedCallersOnly]
public static unsafe int UnregisterClassForTypeInternal(ComActivationContextInternal* pCxtInt) public static unsafe int UnregisterClassForTypeInternal(ComActivationContextInternal* pCxtInt)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
ref ComActivationContextInternal cxtInt = ref *pCxtInt; ref ComActivationContextInternal cxtInt = ref *pCxtInt;
if (IsLoggingEnabled()) if (IsLoggingEnabled())
@ -342,26 +365,38 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
} }
return 0; return 0;
#else
throw new PlatformNotSupportedException();
#endif
} }
private static bool IsLoggingEnabled() private static bool IsLoggingEnabled()
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
#if COM_ACTIVATOR_DEBUG #if COM_ACTIVATOR_DEBUG
return true; return true;
#else #else
return false; return false;
#endif
#else
throw new PlatformNotSupportedException();
#endif #endif
} }
private static void Log(string fmt, params object[] args) private static void Log(string fmt, params object[] args)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// [TODO] Use FrameworkEventSource in release builds // [TODO] Use FrameworkEventSource in release builds
Debug.WriteLine(fmt, args); Debug.WriteLine(fmt, args);
#else
throw new PlatformNotSupportedException();
#endif
} }
private static Type FindClassType(Guid clsid, string assemblyPath, string assemblyName, string typeName) private static Type FindClassType(Guid clsid, string assemblyPath, string assemblyName, string typeName)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
try try
{ {
AssemblyLoadContext alc = GetALC(assemblyPath); AssemblyLoadContext alc = GetALC(assemblyPath);
@ -383,10 +418,14 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
const int CLASS_E_CLASSNOTAVAILABLE = unchecked((int)0x80040111); const int CLASS_E_CLASSNOTAVAILABLE = unchecked((int)0x80040111);
throw new COMException(string.Empty, CLASS_E_CLASSNOTAVAILABLE); throw new COMException(string.Empty, CLASS_E_CLASSNOTAVAILABLE);
#else
throw new PlatformNotSupportedException();
#endif
} }
private static AssemblyLoadContext GetALC(string assemblyPath) private static AssemblyLoadContext GetALC(string assemblyPath)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
AssemblyLoadContext? alc; AssemblyLoadContext? alc;
lock (s_assemblyLoadContexts) lock (s_assemblyLoadContexts)
@ -399,22 +438,32 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
} }
return alc; return alc;
#else
throw new PlatformNotSupportedException();
#endif
} }
[ComVisible(true)] [ComVisible(true)]
private class BasicClassFactory : IClassFactory private class BasicClassFactory : IClassFactory
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
private readonly Guid _classId; private readonly Guid _classId;
private readonly Type _classType; private readonly Type _classType;
#endif
public BasicClassFactory(Guid clsid, Type classType) public BasicClassFactory(Guid clsid, Type classType)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
_classId = clsid; _classId = clsid;
_classType = classType; _classType = classType;
#else
throw new PlatformNotSupportedException();
#endif
} }
public static Type GetValidatedInterfaceType(Type classType, ref Guid riid, object? outer) public static Type GetValidatedInterfaceType(Type classType, ref Guid riid, object? outer)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
Debug.Assert(classType != null); Debug.Assert(classType != null);
if (riid == Marshal.IID_IUnknown) if (riid == Marshal.IID_IUnknown)
{ {
@ -439,10 +488,14 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// E_NOINTERFACE // E_NOINTERFACE
throw new InvalidCastException(); throw new InvalidCastException();
#else
throw new PlatformNotSupportedException();
#endif
} }
public static void ValidateObjectIsMarshallableAsInterface(object obj, Type interfaceType) public static void ValidateObjectIsMarshallableAsInterface(object obj, Type interfaceType)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// If the requested "interface type" is type object then return // If the requested "interface type" is type object then return
// because type object is always marshallable. // because type object is always marshallable.
if (interfaceType == typeof(object)) if (interfaceType == typeof(object))
@ -462,10 +515,14 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// Decrement the above 'Marshal.GetComInterfaceForObject()' // Decrement the above 'Marshal.GetComInterfaceForObject()'
Marshal.Release(ptr); Marshal.Release(ptr);
#else
throw new PlatformNotSupportedException();
#endif
} }
public static object CreateAggregatedObject(object pUnkOuter, object comObject) public static object CreateAggregatedObject(object pUnkOuter, object comObject)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
Debug.Assert(pUnkOuter != null && comObject != null); Debug.Assert(pUnkOuter != null && comObject != null);
IntPtr outerPtr = Marshal.GetIUnknownForObject(pUnkOuter); IntPtr outerPtr = Marshal.GetIUnknownForObject(pUnkOuter);
@ -479,6 +536,9 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// Decrement the above 'Marshal.GetIUnknownForObject()' // Decrement the above 'Marshal.GetIUnknownForObject()'
Marshal.Release(outerPtr); Marshal.Release(outerPtr);
} }
#else
throw new PlatformNotSupportedException();
#endif
} }
public void CreateInstance( public void CreateInstance(
@ -486,6 +546,7 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
ref Guid riid, ref Guid riid,
[MarshalAs(UnmanagedType.Interface)] out object? ppvObject) [MarshalAs(UnmanagedType.Interface)] out object? ppvObject)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
Type interfaceType = BasicClassFactory.GetValidatedInterfaceType(_classType, ref riid, pUnkOuter); Type interfaceType = BasicClassFactory.GetValidatedInterfaceType(_classType, ref riid, pUnkOuter);
ppvObject = Activator.CreateInstance(_classType)!; ppvObject = Activator.CreateInstance(_classType)!;
@ -495,25 +556,38 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
} }
BasicClassFactory.ValidateObjectIsMarshallableAsInterface(ppvObject, interfaceType); BasicClassFactory.ValidateObjectIsMarshallableAsInterface(ppvObject, interfaceType);
#else
throw new PlatformNotSupportedException();
#endif
} }
public void LockServer([MarshalAs(UnmanagedType.Bool)] bool fLock) public void LockServer([MarshalAs(UnmanagedType.Bool)] bool fLock)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// nop // nop
#else
throw new PlatformNotSupportedException();
#endif
} }
} }
[ComVisible(true)] [ComVisible(true)]
private class LicenseClassFactory : IClassFactory2 private class LicenseClassFactory : IClassFactory2
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
private readonly LicenseInteropProxy _licenseProxy = new LicenseInteropProxy(); private readonly LicenseInteropProxy _licenseProxy = new LicenseInteropProxy();
private readonly Guid _classId; private readonly Guid _classId;
private readonly Type _classType; private readonly Type _classType;
#endif
public LicenseClassFactory(Guid clsid, Type classType) public LicenseClassFactory(Guid clsid, Type classType)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
_classId = clsid; _classId = clsid;
_classType = classType; _classType = classType;
#else
throw new PlatformNotSupportedException();
#endif
} }
public void CreateInstance( public void CreateInstance(
@ -521,16 +595,25 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
ref Guid riid, ref Guid riid,
[MarshalAs(UnmanagedType.Interface)] out object? ppvObject) [MarshalAs(UnmanagedType.Interface)] out object? ppvObject)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
CreateInstanceInner(pUnkOuter, ref riid, key: null, isDesignTime: true, out ppvObject); CreateInstanceInner(pUnkOuter, ref riid, key: null, isDesignTime: true, out ppvObject);
#else
throw new PlatformNotSupportedException();
#endif
} }
public void LockServer([MarshalAs(UnmanagedType.Bool)] bool fLock) public void LockServer([MarshalAs(UnmanagedType.Bool)] bool fLock)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// nop // nop
#else
throw new PlatformNotSupportedException();
#endif
} }
public void GetLicInfo(ref LICINFO licInfo) public void GetLicInfo(ref LICINFO licInfo)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
_licenseProxy.GetLicInfo(_classType, out bool runtimeKeyAvail, out bool licVerified); _licenseProxy.GetLicInfo(_classType, out bool runtimeKeyAvail, out bool licVerified);
// The LICINFO is a struct with a DWORD size field and two BOOL fields. Each BOOL // The LICINFO is a struct with a DWORD size field and two BOOL fields. Each BOOL
@ -538,11 +621,18 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
licInfo.cbLicInfo = sizeof(int) + sizeof(int) + sizeof(int); licInfo.cbLicInfo = sizeof(int) + sizeof(int) + sizeof(int);
licInfo.fRuntimeKeyAvail = runtimeKeyAvail; licInfo.fRuntimeKeyAvail = runtimeKeyAvail;
licInfo.fLicVerified = licVerified; licInfo.fLicVerified = licVerified;
#else
throw new PlatformNotSupportedException();
#endif
} }
public void RequestLicKey(int dwReserved, [MarshalAs(UnmanagedType.BStr)] out string pBstrKey) public void RequestLicKey(int dwReserved, [MarshalAs(UnmanagedType.BStr)] out string pBstrKey)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
pBstrKey = _licenseProxy.RequestLicKey(_classType); pBstrKey = _licenseProxy.RequestLicKey(_classType);
#else
throw new PlatformNotSupportedException();
#endif
} }
public void CreateInstanceLic( public void CreateInstanceLic(
@ -552,8 +642,12 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
[MarshalAs(UnmanagedType.BStr)] string bstrKey, [MarshalAs(UnmanagedType.BStr)] string bstrKey,
[MarshalAs(UnmanagedType.Interface)] out object ppvObject) [MarshalAs(UnmanagedType.Interface)] out object ppvObject)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
Debug.Assert(pUnkReserved == null); Debug.Assert(pUnkReserved == null);
CreateInstanceInner(pUnkOuter, ref riid, bstrKey, isDesignTime: false, out ppvObject); CreateInstanceInner(pUnkOuter, ref riid, bstrKey, isDesignTime: false, out ppvObject);
#else
throw new PlatformNotSupportedException();
#endif
} }
private void CreateInstanceInner( private void CreateInstanceInner(
@ -563,6 +657,7 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
bool isDesignTime, bool isDesignTime,
out object ppvObject) out object ppvObject)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
Type interfaceType = BasicClassFactory.GetValidatedInterfaceType(_classType, ref riid, pUnkOuter); Type interfaceType = BasicClassFactory.GetValidatedInterfaceType(_classType, ref riid, pUnkOuter);
ppvObject = _licenseProxy.AllocateAndValidateLicense(_classType, key, isDesignTime); ppvObject = _licenseProxy.AllocateAndValidateLicense(_classType, key, isDesignTime);
@ -572,6 +667,9 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
} }
BasicClassFactory.ValidateObjectIsMarshallableAsInterface(ppvObject, interfaceType); BasicClassFactory.ValidateObjectIsMarshallableAsInterface(ppvObject, interfaceType);
#else
throw new PlatformNotSupportedException();
#endif
} }
} }
} }
@ -584,6 +682,7 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// license context and instantiate the object. // license context and instantiate the object.
internal sealed class LicenseInteropProxy internal sealed class LicenseInteropProxy
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
private static readonly Type? s_licenseAttrType = Type.GetType("System.ComponentModel.LicenseProviderAttribute, System.ComponentModel.TypeConverter", throwOnError: false); private static readonly Type? s_licenseAttrType = Type.GetType("System.ComponentModel.LicenseProviderAttribute, System.ComponentModel.TypeConverter", throwOnError: false);
private static readonly Type? s_licenseExceptionType = Type.GetType("System.ComponentModel.LicenseException, System.ComponentModel.TypeConverter", throwOnError: false); private static readonly Type? s_licenseExceptionType = Type.GetType("System.ComponentModel.LicenseException, System.ComponentModel.TypeConverter", throwOnError: false);
@ -607,9 +706,11 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// RCW Activation // RCW Activation
private object? _licContext; private object? _licContext;
private Type? _targetRcwType; private Type? _targetRcwType;
#endif
public LicenseInteropProxy() public LicenseInteropProxy()
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
Type licManager = Type.GetType("System.ComponentModel.LicenseManager, System.ComponentModel.TypeConverter", throwOnError: true)!; Type licManager = Type.GetType("System.ComponentModel.LicenseManager, System.ComponentModel.TypeConverter", throwOnError: true)!;
Type licContext = Type.GetType("System.ComponentModel.LicenseContext, System.ComponentModel.TypeConverter", throwOnError: true)!; Type licContext = Type.GetType("System.ComponentModel.LicenseContext, System.ComponentModel.TypeConverter", throwOnError: true)!;
@ -626,17 +727,25 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
_licInfoHelper = licManager.GetNestedType("LicInfoHelperLicenseContext", BindingFlags.NonPublic)!; _licInfoHelper = licManager.GetNestedType("LicInfoHelperLicenseContext", BindingFlags.NonPublic)!;
_licInfoHelperContains = _licInfoHelper.GetMethod("Contains", BindingFlags.Instance | BindingFlags.Public)!; _licInfoHelperContains = _licInfoHelper.GetMethod("Contains", BindingFlags.Instance | BindingFlags.Public)!;
#else
throw new PlatformNotSupportedException();
#endif
} }
// Helper function to create an object from the native side // Helper function to create an object from the native side
public static object Create() public static object Create()
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
return new LicenseInteropProxy(); return new LicenseInteropProxy();
#else
throw new PlatformNotSupportedException();
#endif
} }
// Determine if the type supports licensing // Determine if the type supports licensing
public static bool HasLicense(Type type) public static bool HasLicense(Type type)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// If the attribute type can't be found, then the type // If the attribute type can't be found, then the type
// definitely doesn't support licensing. // definitely doesn't support licensing.
if (s_licenseAttrType == null) if (s_licenseAttrType == null)
@ -645,6 +754,9 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
} }
return type.IsDefined(s_licenseAttrType, inherit: true); return type.IsDefined(s_licenseAttrType, inherit: true);
#else
throw new PlatformNotSupportedException();
#endif
} }
// The CLR invokes this whenever a COM client invokes // The CLR invokes this whenever a COM client invokes
@ -654,6 +766,7 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// should only throw in the case of a catastrophic error (stack, memory, etc.) // should only throw in the case of a catastrophic error (stack, memory, etc.)
public void GetLicInfo(Type type, out bool runtimeKeyAvail, out bool licVerified) public void GetLicInfo(Type type, out bool runtimeKeyAvail, out bool licVerified)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
runtimeKeyAvail = false; runtimeKeyAvail = false;
licVerified = false; licVerified = false;
@ -676,12 +789,16 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
parameters = new object?[] { type.AssemblyQualifiedName }; parameters = new object?[] { type.AssemblyQualifiedName };
runtimeKeyAvail = (bool)_licInfoHelperContains.Invoke(licContext, BindingFlags.DoNotWrapExceptions, binder: null, parameters: parameters, culture: null)!; runtimeKeyAvail = (bool)_licInfoHelperContains.Invoke(licContext, BindingFlags.DoNotWrapExceptions, binder: null, parameters: parameters, culture: null)!;
#else
throw new PlatformNotSupportedException();
#endif
} }
// The CLR invokes this whenever a COM client invokes // The CLR invokes this whenever a COM client invokes
// IClassFactory2::RequestLicKey on a managed class. // IClassFactory2::RequestLicKey on a managed class.
public string RequestLicKey(Type type) public string RequestLicKey(Type type)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
// License will be null, since we passed no instance, // License will be null, since we passed no instance,
// however we can still retrieve the "first" license // however we can still retrieve the "first" license
// key from the file. This really will only // key from the file. This really will only
@ -711,6 +828,9 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
} }
return licenseKey; return licenseKey;
#else
throw new PlatformNotSupportedException();
#endif
} }
// The CLR invokes this whenever a COM client invokes // The CLR invokes this whenever a COM client invokes
@ -725,6 +845,7 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// license key. // license key.
public object AllocateAndValidateLicense(Type type, string? key, bool isDesignTime) public object AllocateAndValidateLicense(Type type, string? key, bool isDesignTime)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
object?[] parameters; object?[] parameters;
object? licContext; object? licContext;
if (isDesignTime) if (isDesignTime)
@ -748,11 +869,15 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
const int CLASS_E_NOTLICENSED = unchecked((int)0x80040112); const int CLASS_E_NOTLICENSED = unchecked((int)0x80040112);
throw new COMException(exception.Message, CLASS_E_NOTLICENSED); throw new COMException(exception.Message, CLASS_E_NOTLICENSED);
} }
#else
throw new PlatformNotSupportedException();
#endif
} }
// See usage in native RCW code // See usage in native RCW code
public void GetCurrentContextInfo(RuntimeTypeHandle rth, out bool isDesignTime, out IntPtr bstrKey) public void GetCurrentContextInfo(RuntimeTypeHandle rth, out bool isDesignTime, out IntPtr bstrKey)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
Type targetRcwTypeMaybe = Type.GetTypeFromHandle(rth); Type targetRcwTypeMaybe = Type.GetTypeFromHandle(rth);
// Types are as follows: // Types are as follows:
@ -763,6 +888,9 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
_targetRcwType = targetRcwTypeMaybe; _targetRcwType = targetRcwTypeMaybe;
isDesignTime = (bool)parameters[1]!; isDesignTime = (bool)parameters[1]!;
bstrKey = Marshal.StringToBSTR((string)parameters[2]!); bstrKey = Marshal.StringToBSTR((string)parameters[2]!);
#else
throw new PlatformNotSupportedException();
#endif
} }
// The CLR invokes this when instantiating a licensed COM // The CLR invokes this when instantiating a licensed COM
@ -771,6 +899,7 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
// retrieved using RequestLicKey(). // retrieved using RequestLicKey().
public void SaveKeyInCurrentContext(IntPtr bstrKey) public void SaveKeyInCurrentContext(IntPtr bstrKey)
{ {
#if FEATURE_COMINTEROP_UNMANAGED_ACTIVATION
if (bstrKey == IntPtr.Zero) if (bstrKey == IntPtr.Zero)
{ {
return; return;
@ -779,6 +908,9 @@ $@"{nameof(UnregisterClassForTypeInternal)} arguments:
string key = Marshal.PtrToStringBSTR(bstrKey); string key = Marshal.PtrToStringBSTR(bstrKey);
var parameters = new object?[] { _targetRcwType, key }; var parameters = new object?[] { _targetRcwType, key };
_setSavedLicenseKey.Invoke(_licContext, BindingFlags.DoNotWrapExceptions, binder: null, parameters: parameters, culture: null); _setSavedLicenseKey.Invoke(_licContext, BindingFlags.DoNotWrapExceptions, binder: null, parameters: parameters, culture: null);
#else
throw new PlatformNotSupportedException();
#endif
} }
} }
} }

View file

@ -20,6 +20,7 @@ namespace Internal.Runtime.InteropServices
/// <param name="assemblyPath">The path to the assembly (as a pointer to a UTF-16 C string).</param> /// <param name="assemblyPath">The path to the assembly (as a pointer to a UTF-16 C string).</param>
public static unsafe void LoadInMemoryAssembly(IntPtr moduleHandle, IntPtr assemblyPath) public static unsafe void LoadInMemoryAssembly(IntPtr moduleHandle, IntPtr assemblyPath)
{ {
#if TARGET_WINDOWS
string? assemblyPathString = Marshal.PtrToStringUni(assemblyPath); string? assemblyPathString = Marshal.PtrToStringUni(assemblyPath);
if (assemblyPathString == null) if (assemblyPathString == null)
{ {
@ -30,6 +31,9 @@ namespace Internal.Runtime.InteropServices
// (the load process rewrites the stubs that call here to call the actual methods they're supposed to) // (the load process rewrites the stubs that call here to call the actual methods they're supposed to)
AssemblyLoadContext context = new IsolatedComponentLoadContext(assemblyPathString); AssemblyLoadContext context = new IsolatedComponentLoadContext(assemblyPathString);
context.LoadFromInMemoryModule(moduleHandle); context.LoadFromInMemoryModule(moduleHandle);
#else
throw new PlatformNotSupportedException();
#endif
} }
} }
} }

View file

@ -57,13 +57,12 @@
<CLRTestPriorityToBuild>0</CLRTestPriorityToBuild> <CLRTestPriorityToBuild>0</CLRTestPriorityToBuild>
</PropertyGroup> </PropertyGroup>
<!-- Which tests can we build? Default: All tests. <!-- Which tests can we build? Default: Build managed tests for this target.
At the command-line, the user can specify: At the command-line, the user can specify:
+ /p:CLRTestNeedTargetToBuild=targetGeneric Only build tests which run on any target platform. + /p:CLRTestBuildAllTargets=allTargets Build managed tests for all target platforms.
+ /p:CLRTestNeedTargetToBuild=targetSpecific Only build tests which run on a specific target platform.
--> -->
<PropertyGroup> <PropertyGroup>
<CLRTestNeedTargetToBuild></CLRTestNeedTargetToBuild> <CLRTestBuildAllTargets></CLRTestBuildAllTargets>
</PropertyGroup> </PropertyGroup>
<!-- Where to put a "testhost" for running corefx tests --> <!-- Where to put a "testhost" for running corefx tests -->

View file

@ -22,7 +22,6 @@
<BaseOutputPath>$(RepoRoot)/artifacts/tests/coreclr/$(OSPlatformConfig)/$(BuildProjectRelativeDir)</BaseOutputPath> <BaseOutputPath>$(RepoRoot)/artifacts/tests/coreclr/$(OSPlatformConfig)/$(BuildProjectRelativeDir)</BaseOutputPath>
<OutputPath>$(BaseOutputPath)</OutputPath> <OutputPath>$(BaseOutputPath)</OutputPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

View file

@ -87,12 +87,13 @@
<MSBuild Targets="$(DefaultCopyAllNativeTestProjectBinariesTarget)" <MSBuild Targets="$(DefaultCopyAllNativeTestProjectBinariesTarget)"
Projects="@(Project)" Projects="@(Project)"
Condition="'$(SerializeProjects)'=='true'" Condition="'$(SerializeProjects)'=='true'"
Properties="Dummy=%(Identity)" Properties="Dummy=%(Identity);BuildAllProjects=true"
ContinueOnError="ErrorAndContinue" /> ContinueOnError="ErrorAndContinue" />
<MSBuild Targets="$(DefaultCopyAllNativeTestProjectBinariesTarget)" <MSBuild Targets="$(DefaultCopyAllNativeTestProjectBinariesTarget)"
Projects="@(Project)" Projects="@(Project)"
Condition="'$(SerializeProjects)'!='true'" Condition="'$(SerializeProjects)'!='true'"
Properties="BuildAllProjects=true"
BuildInParallel="true" BuildInParallel="true"
ContinueOnError="ErrorAndContinue" /> ContinueOnError="ErrorAndContinue" />

View file

@ -125,7 +125,7 @@
<!-- All Unix targets on all runtimes --> <!-- All Unix targets on all runtimes -->
<ItemGroup Condition="'$(XunitTestBinBase)' != '' and '$(TargetsWindows)' != 'true'"> <ItemGroup Condition="'$(XunitTestBinBase)' != '' and '$(TargetsWindows)' != 'true'">
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/arglist/vararg/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/arglist/vararg_TargetUnix/*">
<Issue>Native varargs not supported on unix</Issue> <Issue>Native varargs not supported on unix</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/Interop/ExecInDefAppDom/ExecInDefAppDom/*"> <ExcludeList Include="$(XunitTestBinBase)/Interop/ExecInDefAppDom/ExecInDefAppDom/*">
@ -148,22 +148,22 @@
<ExcludeList Include="$(XunitTestBinBase)/CoreMangLib/cti/system/reflection/emit/DynMethodJumpStubTests/DynMethodJumpStubTests/*"> <ExcludeList Include="$(XunitTestBinBase)/CoreMangLib/cti/system/reflection/emit/DynMethodJumpStubTests/DynMethodJumpStubTests/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof_Target_32BIT/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof32/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof32_Target_32BIT/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof64/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_dbgsizeof64_Target_32BIT/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_relsizeof/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_relsizeof_Target_32BIT/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_relsizeof32/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_relsizeof32_Target_32BIT/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_relsizeof64/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/xxobj/sizeof/_il_relsizeof64_Target_32BIT/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/jit64/opt/cse/HugeArray1/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/jit64/opt/cse/HugeArray1/*">
@ -247,10 +247,10 @@
<ExcludeList Include="$(XunitTestBinBase)/JIT/opt/Tailcall/TailcallVerifyWithPrefix/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/opt/Tailcall/TailcallVerifyWithPrefix/*">
<Issue>Depends on implicit tailcalls to be performed</Issue> <Issue>Depends on implicit tailcalls to be performed</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/arglist/vararg/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/arglist/vararg*/*">
<Issue>Needs triage</Issue> <Issue>Needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/baseservices/exceptions/WindowsEventLog/WindowsEventLog/*"> <ExcludeList Include="$(XunitTestBinBase)/baseservices/exceptions/WindowsEventLog/WindowsEventLog_TargetUnix/*">
<Issue>Needs triage</Issue> <Issue>Needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/jit64/mcc/interop/mcc_i53/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/jit64/mcc/interop/mcc_i53/*">
@ -437,7 +437,7 @@
<ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37646/b37646/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M12-Beta2/b37646/b37646/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/1/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/1/arglist_Target_ARM/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41391/b41391/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M11-Beta1/b41391/b41391/*">
@ -461,7 +461,7 @@
<ExcludeList Include="$(XunitTestBinBase)/Interop/PInvoke/Varargs/VarargsTest/*"> <ExcludeList Include="$(XunitTestBinBase)/Interop/PInvoke/Varargs/VarargsTest/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/volatile/1/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/volatile/1/arglist_Target_ARM/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b28901/b28901/*">
@ -530,7 +530,7 @@
<ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16423/b16423/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M09.5-PDC/b16423/b16423/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/2/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/2/arglist_Target_ARM/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/refany/_il_dbgseq/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Methodical/refany/_il_dbgseq/*">
@ -575,7 +575,7 @@
<ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Regression/CLR-x86-JIT/V1-M13-RTM/b91248/b91248/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/4/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/4/arglist_Target_ARM/*">
<Issue>https://github.com/dotnet/runtime/issues/12979</Issue> <Issue>https://github.com/dotnet/runtime/issues/12979</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/jit64/mcc/interop/mcc_i10/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/jit64/mcc/interop/mcc_i10/*">
@ -713,16 +713,16 @@
<!-- Tests that need to be triaged for vararg usage as that is not supported --> <!-- Tests that need to be triaged for vararg usage as that is not supported -->
<!-- Note these will only be excluded for unix platforms on all runtimes --> <!-- Note these will only be excluded for unix platforms on all runtimes -->
<ItemGroup Condition="'$(XunitTestBinBase)' != '' and '$(TargetsWindows)' != 'true' "> <ItemGroup Condition="'$(XunitTestBinBase)' != '' and '$(TargetsWindows)' != 'true' ">
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/1/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/1/arglist*/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/2/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/2/arglist*/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/4/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/unaligned/4/arglist*/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/volatile/1/arglist/*"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/PREFIX/volatile/1/arglist*/*">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
</ItemGroup> </ItemGroup>
@ -1020,7 +1020,7 @@
<ExcludeList Include="$(XunitTestBinBase)/Interop/ICustomMarshaler/ConflictingNames/MultipleALCs/**"> <ExcludeList Include="$(XunitTestBinBase)/Interop/ICustomMarshaler/ConflictingNames/MultipleALCs/**">
<Issue>https://github.com/dotnet/runtime/issues/34072</Issue> <Issue>https://github.com/dotnet/runtime/issues/34072</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/Interop/ICustomMarshaler/Primitives/ICustomMarshaler/**"> <ExcludeList Include="$(XunitTestBinBase)/Interop/ICustomMarshaler/Primitives/ICustomMarshaler_TargetUnix/**">
<Issue>https://github.com/dotnet/runtime/issues/34374</Issue> <Issue>https://github.com/dotnet/runtime/issues/34374</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/Interop/LayoutClass/LayoutClassTest/**"> <ExcludeList Include="$(XunitTestBinBase)/Interop/LayoutClass/LayoutClassTest/**">
@ -1119,7 +1119,7 @@
<ExcludeList Include="$(XunitTestBinBase)/Interop/StructPacking/StructPacking/**"> <ExcludeList Include="$(XunitTestBinBase)/Interop/StructPacking/StructPacking/**">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)Interop/NativeLibrary/Callback/CallbackStressTest/**"> <ExcludeList Include="$(XunitTestBinBase)Interop/NativeLibrary/Callback/CallbackStressTest_TargetUnix/**">
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/Convert/ldind_conv/**"> <ExcludeList Include="$(XunitTestBinBase)/JIT/Directed/Convert/ldind_conv/**">
@ -1812,6 +1812,43 @@
<Issue>needs triage</Issue> <Issue>needs triage</Issue>
</ExcludeList> </ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/HardwareIntrinsics/X86/Ssse3/Ssse3_ro/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Stress/ABI/pinvokes_d/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Stress/ABI/pinvokes_do/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Stress/ABI/stubs_do/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Stress/ABI/tailcalls_d/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/JIT/Stress/ABI/tailcalls_do/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/tracing/eventpipe/providervalidation/providervalidation/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/tracing/eventpipe/rundownvalidation/rundownvalidation/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/tracing/eventpipe/buffersize/buffersize/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/tracing/eventpipe/reverse/reverse/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)/tracing/eventpipe/eventsourceerror/eventsourceerror/**">
<Issue>needs triage</Issue>
</ExcludeList>
<ExcludeList Include = "$(XunitTestBinBase)tracing/eventsource/eventsourcetrace/eventsourcetrace/**">
<Issue>needs triage</Issue>
</ExcludeList>
<!-- The following only fail in the mono interpreter, but we don't have a way to exclude based on scenario yet --> <!-- The following only fail in the mono interpreter, but we don't have a way to exclude based on scenario yet -->
<ExcludeList Include = "$(XunitTestBinBase)/JIT/jit64/rtchecks/overflow/overflow04_div/**"> <ExcludeList Include = "$(XunitTestBinBase)/JIT/jit64/rtchecks/overflow/overflow04_div/**">

View file

@ -109,11 +109,6 @@ then
exit $(GCBashScriptExitCode) exit $(GCBashScriptExitCode)
fi fi
]]></BashCLRTestEnvironmentCompatibilityCheck> ]]></BashCLRTestEnvironmentCompatibilityCheck>
<BashCLRTestEnvironmentCompatibilityCheck Condition="'$(TestUnsupportedOutsideWindows)' == 'true'"><![CDATA[
$(BashCLRTestEnvironmentCompatibilityCheck)
echo SKIPPING EXECUTION BECAUSE test is unsupported outside Windows.
exit $(GCBashScriptExitCode)
]]></BashCLRTestEnvironmentCompatibilityCheck>
<BashCLRTestExitCodePrep Condition="$(_CLRTestNeedsToRun)"> <BashCLRTestExitCodePrep Condition="$(_CLRTestNeedsToRun)">
<![CDATA[ <![CDATA[

View file

@ -58,8 +58,8 @@ This file contains the logic for providing Execution Script generation.
--> -->
<ItemGroup> <ItemGroup>
<ExecutionScriptKind Include="Batch" /> <ExecutionScriptKind Include="Batch" Condition="'$(TargetsWindows)' == 'true'" />
<ExecutionScriptKind Include="Bash" /> <ExecutionScriptKind Include="Bash" Condition="'$(TargetsWindows)' != 'true'" />
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>

View file

@ -3,7 +3,6 @@
<AssemblyName>TestLibrary</AssemblyName> <AssemblyName>TestLibrary</AssemblyName>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<CLRTestKind>BuildOnly</CLRTestKind> <CLRTestKind>BuildOnly</CLRTestKind>
<DefineConstants>$(DefineConstants);$([System.String]::Copy('$(TargetArchitecture)').ToUpper())</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<GenerateRunScript>false</GenerateRunScript> <GenerateRunScript>false</GenerateRunScript>
<TargetFramework>$(NetCoreAppCurrent)</TargetFramework> <TargetFramework>$(NetCoreAppCurrent)</TargetFramework>

View file

@ -28,10 +28,6 @@
</ItemGroup> </ItemGroup>
</Target> </Target>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<Target Name="AddLibrariesToCoreRoot" BeforeTargets="CopyDependencyToCoreRoot" DependsOnTargets="ResolveLibrariesFromLocalBuild"> <Target Name="AddLibrariesToCoreRoot" BeforeTargets="CopyDependencyToCoreRoot" DependsOnTargets="ResolveLibrariesFromLocalBuild">
<ItemGroup> <ItemGroup>
<RuntimeCopyLocalItems Include="@(LibrariesRuntimeFiles)" /> <RuntimeCopyLocalItems Include="@(LibrariesRuntimeFiles)" />

View file

@ -3,8 +3,7 @@
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<CLRTestPriority>1</CLRTestPriority> <CLRTestPriority>1</CLRTestPriority>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="$(MSBuildProjectName).cs" /> <Compile Include="$(MSBuildProjectName).cs" />

View file

@ -107,6 +107,13 @@
</When> </When>
</Choose> </Choose>
<!-- Set arch specific properties -->
<PropertyGroup>
<TargetBits>32</TargetBits>
<TargetBits Condition="'$(TargetArchitecture)'=='x64'">64</TargetBits>
<TargetBits Condition="'$(TargetArchitecture)'=='arm64'">64</TargetBits>
</PropertyGroup>
<PropertyGroup> <PropertyGroup>
<TargetRid>$(__RuntimeId)</TargetRid> <TargetRid>$(__RuntimeId)</TargetRid>
<TargetRid Condition="'$(TargetRid)' == ''">$(TestNugetRuntimeId)</TargetRid> <TargetRid Condition="'$(TargetRid)' == ''">$(TestNugetRuntimeId)</TargetRid>

View file

@ -4,7 +4,6 @@
<CLRTestKind Condition="'$(CLRTestKind)' == '' and '$(OutputType)' == 'Library'">SharedLibrary</CLRTestKind> <CLRTestKind Condition="'$(CLRTestKind)' == '' and '$(OutputType)' == 'Library'">SharedLibrary</CLRTestKind>
<CLRTestKind Condition="'$(CLRTestKind)' == ''">BuildAndRun</CLRTestKind> <CLRTestKind Condition="'$(CLRTestKind)' == ''">BuildAndRun</CLRTestKind>
<CLRTestPriority Condition="'$(CLRTestPriority)' == ''">0</CLRTestPriority> <CLRTestPriority Condition="'$(CLRTestPriority)' == ''">0</CLRTestPriority>
<CLRTestNeedTarget Condition="'$(CLRTestNeedTarget)' == ''">0</CLRTestNeedTarget>
</PropertyGroup> </PropertyGroup>
<!-- All CLRTests need to be of a certain "kind". These kinds are enumerated below. <!-- All CLRTests need to be of a certain "kind". These kinds are enumerated below.
@ -73,8 +72,7 @@
<_WillCLRTestProjectBuild Condition="'$(_WillCLRTestProjectBuild)' == ''">false</_WillCLRTestProjectBuild> <_WillCLRTestProjectBuild Condition="'$(_WillCLRTestProjectBuild)' == ''">false</_WillCLRTestProjectBuild>
<_WillCLRTestProjectBuild Condition="'$(BuildAllProjects)' != 'true'">true</_WillCLRTestProjectBuild> <_WillCLRTestProjectBuild Condition="'$(BuildAllProjects)' != 'true'">true</_WillCLRTestProjectBuild>
<_WillCLRTestProjectBuild Condition="'$(BuildAllProjects)' == 'true' And '$(CLRTestPriority)' &lt;= '$(CLRTestPriorityToBuild)'">true</_WillCLRTestProjectBuild> <_WillCLRTestProjectBuild Condition="'$(BuildAllProjects)' == 'true' And '$(CLRTestPriority)' &lt;= '$(CLRTestPriorityToBuild)'">true</_WillCLRTestProjectBuild>
<_WillCLRTestProjectBuild Condition="'$(CLRTestNeedTargetToBuild)' == 'targetGeneric' And '$(CLRTestNeedTarget)' == '1'">false</_WillCLRTestProjectBuild> <_WillCLRTestProjectBuild Condition="'$(CLRTestBuildAllTargets)' != 'allTargets' And '$(CLRTestTargetUnsupported)' == 'true'">false</_WillCLRTestProjectBuild>
<_WillCLRTestProjectBuild Condition="'$(CLRTestNeedTargetToBuild)' == 'targetSpecific' And '$(CLRTestNeedTarget)' != '1'">false</_WillCLRTestProjectBuild>
<_WillCLRTestProjectBuild Condition="'$(DisableProjectBuild)' == 'true'">false</_WillCLRTestProjectBuild> <_WillCLRTestProjectBuild Condition="'$(DisableProjectBuild)' == 'true'">false</_WillCLRTestProjectBuild>
</PropertyGroup> </PropertyGroup>
@ -105,15 +103,9 @@
<ProjectLanguage Condition="'$(MSBuildProjectExtension)' == '.csproj' OR '$(Language)' == 'C#' OR '$(ProjectLanguage)'==''">CSharp</ProjectLanguage> <ProjectLanguage Condition="'$(MSBuildProjectExtension)' == '.csproj' OR '$(Language)' == 'C#' OR '$(ProjectLanguage)'==''">CSharp</ProjectLanguage>
<SkipImportILTargets Condition="'$(CLRTestPriority)' &gt; '$(CLRTestPriorityToBuild)'">true</SkipImportILTargets> <SkipImportILTargets Condition="'$(CLRTestPriority)' &gt; '$(CLRTestPriorityToBuild)'">true</SkipImportILTargets>
<SkipImportILTargets Condition="'$(CLRTestNeedTargetToBuild)' != '' And '$(CLRTestNeedTarget)' != '$(CLRTestNeedTargetToBuild)'">true</SkipImportILTargets> <SkipImportILTargets Condition="'$(CLRTestBuildAllTargets)' != '' And '$(CLRTestNeedTarget)' != '$(CLRTestBuildAllTargets)'">true</SkipImportILTargets>
</PropertyGroup> </PropertyGroup>
<Import Project="CLRTest.Execute.targets" />
<Target Name="CreateExecuteScript"
AfterTargets="Build"
Condition="'$(GenerateRunScript)' != 'false' And ('$(_WillCLRTestProjectBuild)' == 'true')"
DependsOnTargets="GenerateExecutionScriptsInternal" />
<Target Name="CopyNativeProjectBinaries" Condition="'$(_CopyNativeProjectBinaries)' == 'true'"> <Target Name="CopyNativeProjectBinaries" Condition="'$(_CopyNativeProjectBinaries)' == 'true'">
<ItemGroup> <ItemGroup>
@ -200,6 +192,13 @@
<Target Name="CopyAllNativeProjectReferenceBinaries" DependsOnTargets="ResolveCmakeNativeProjectReference;ConsolidateNativeProjectReference" /> <Target Name="CopyAllNativeProjectReferenceBinaries" DependsOnTargets="ResolveCmakeNativeProjectReference;ConsolidateNativeProjectReference" />
<!-- Build shell or command scripts whenever we copy native binaries -->
<Import Project="CLRTest.Execute.targets" />
<Target Name="CreateExecuteScript"
BeforeTargets="Build;CopyAllNativeProjectReferenceBinaries"
Condition="'$(_CopyNativeProjectBinaries)' == 'true' And '$(GenerateRunScript)' != 'false' And ('$(_WillCLRTestProjectBuild)' == 'true')"
DependsOnTargets="GenerateExecutionScriptsInternal" />
<Target Name="UpdateReferenceItems" <Target Name="UpdateReferenceItems"
BeforeTargets="BeforeResolveReferences" BeforeTargets="BeforeResolveReferences"
> >
@ -248,6 +247,7 @@
</PropertyGroup> </PropertyGroup>
<Import Project="$(RepositoryEngineeringDir)liveBuilds.targets"/> <Import Project="$(RepositoryEngineeringDir)liveBuilds.targets"/>
<Import Project="$(MSBuildProjectFullPath).targets" Condition="Exists('$(MSBuildProjectFullPath).targets')"/>
<Import Project="../../clr.featuredefines.props" /> <Import Project="../../clr.featuredefines.props" />
</Project> </Project>

View file

@ -4,8 +4,7 @@
<GCStressIncompatible>true</GCStressIncompatible> <GCStressIncompatible>true</GCStressIncompatible>
<CLRTestPriority>1</CLRTestPriority> <CLRTestPriority>1</CLRTestPriority>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="smalloom.cs" /> <Compile Include="smalloom.cs" />

View file

@ -9,10 +9,4 @@
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
<ProjectReference Include="CMakeLists.txt" /> <ProjectReference Include="CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
</Project> </Project>

View file

@ -2,8 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="*.cs" /> <Compile Include="*.cs" />

View file

@ -4,17 +4,15 @@
<ReferenceSystemPrivateCoreLib>true</ReferenceSystemPrivateCoreLib> <ReferenceSystemPrivateCoreLib>true</ReferenceSystemPrivateCoreLib>
<RequiresMockHostPolicy>true</RequiresMockHostPolicy> <RequiresMockHostPolicy>true</RequiresMockHostPolicy>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsWindows)' != 'true'">true</DisableProjectBuild>
<!-- The test fails casting from ClassFromA from the default ALC to type IGetTypeFromC from a custom ALC --> <!-- The test fails casting from ClassFromA from the default ALC to type IGetTypeFromC from a custom ALC -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<ItemGroup> <ItemGroup>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\NetServer\NetServer.csproj" /> <ProjectReference Include="..\NETServer\NETServer.csproj" />
<ProjectReference Include="Servers\AssemblyA.csproj" /> <ProjectReference Include="Servers\AssemblyA.csproj" />
<ProjectReference Include="Servers\AssemblyB.csproj" /> <ProjectReference Include="Servers\AssemblyB.csproj" />
<ProjectReference Include="Servers\AssemblyC.csproj" /> <ProjectReference Include="Servers\AssemblyC.csproj" />

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>library</OutputType> <OutputType>library</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>library</OutputType> <OutputType>library</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>library</OutputType> <OutputType>library</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>library</OutputType> <OutputType>library</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -1,14 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows>
<!-- Native COM interfaces left alive at the test exit --> <!-- Native COM interfaces left alive at the test exit -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
<DisableProjectBuild Condition="'$(TargetsWindows)' != 'true'">true</DisableProjectBuild> <!-- Test unsupported outside of windows -->
<CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<ItemGroup> <ItemGroup>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="../Common.cs" /> <Compile Include="../Common.cs" />

View file

@ -7,13 +7,11 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsWindows)' != 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<ItemGroup> <ItemGroup>
<Compile Include="GlobalInstance.cs" /> <Compile Include="GlobalInstance.cs" />
<Compile Include="GlobalInstance.Marshalling.cs" /> <Compile Include="GlobalInstance.Marshalling.cs" />

View file

@ -7,13 +7,11 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsWindows)' != 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<ItemGroup> <ItemGroup>
<Compile Include="GlobalInstance.cs" /> <Compile Include="GlobalInstance.cs" />
<Compile Include="GlobalInstance.TrackerSupport.cs" /> <Compile Include="GlobalInstance.TrackerSupport.cs" />

View file

@ -2,13 +2,11 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<!-- Native COM interfaces left alive at the test exit --> <!-- Native COM interfaces left alive at the test exit -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
<DisableProjectBuild Condition="'$(TargetsWindows)' != 'true'">true</DisableProjectBuild>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup> </PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<ItemGroup> <ItemGroup>
<Compile Include="WeakReferenceTest.cs" /> <Compile Include="WeakReferenceTest.cs" />
</ItemGroup> </ItemGroup>

View file

@ -5,8 +5,7 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -5,8 +5,7 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -7,8 +7,7 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
<!-- Suppress warning about conflicting type names. This occurs because of the reference to NETServer. <!-- Suppress warning about conflicting type names. This occurs because of the reference to NETServer.

View file

@ -5,8 +5,7 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -5,8 +5,7 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -5,8 +5,7 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -4,11 +4,10 @@
<ApplicationManifest>App.manifest</ApplicationManifest> <ApplicationManifest>App.manifest</ApplicationManifest>
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild> <!-- Test unsupported outside of windows -->
<CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />

View file

@ -5,8 +5,7 @@
<!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 --> <!-- Blocked on ILAsm supporting embedding resources. See https://github.com/dotnet/coreclr/issues/20819 -->
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces --> <!-- This test would require the runincontext.exe to include App.manifest describing the COM interfaces -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>
@ -16,6 +15,6 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="../../NativeServer/CMakeLists.txt" /> <ProjectReference Include="../../NativeServer/CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
<ProjectReference Include="NetClientPrimitives.csproj" /> <ProjectReference Include="NETClientPrimitives.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>library</OutputType> <OutputType>library</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -5,8 +5,7 @@
<CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim> <CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim>
<RequiresMockHostPolicy>true</RequiresMockHostPolicy> <RequiresMockHostPolicy>true</RequiresMockHostPolicy>
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants> <DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -14,14 +13,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="DefaultInterfaces/CMakeLists.txt" /> <ProjectReference Include="DefaultInterfaces/CMakeLists.txt" />
<ProjectReference Include="../NetServer/NetServer.DefaultInterfaces.ilproj" /> <ProjectReference Include="../NETServer/NETServer.DefaultInterfaces.ilproj" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
</Project> </Project>

View file

@ -5,8 +5,7 @@
<CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim> <CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim>
<RequiresMockHostPolicy>true</RequiresMockHostPolicy> <RequiresMockHostPolicy>true</RequiresMockHostPolicy>
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants> <DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -14,14 +13,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="Dispatch/CMakeLists.txt" /> <ProjectReference Include="Dispatch/CMakeLists.txt" />
<ProjectReference Include="../NetServer/NetServer.csproj" /> <ProjectReference Include="../NETServer/NETServer.csproj" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
</Project> </Project>

View file

@ -5,8 +5,7 @@
<CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim> <CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim>
<RequiresMockHostPolicy>true</RequiresMockHostPolicy> <RequiresMockHostPolicy>true</RequiresMockHostPolicy>
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants> <DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -14,14 +13,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="Events/CMakeLists.txt" /> <ProjectReference Include="Events/CMakeLists.txt" />
<ProjectReference Include="../NetServer/NetServer.csproj" /> <ProjectReference Include="../NETServer/NETServer.csproj" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
</Project> </Project>

View file

@ -5,8 +5,7 @@
<CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim> <CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim>
<RequiresMockHostPolicy>true</RequiresMockHostPolicy> <RequiresMockHostPolicy>true</RequiresMockHostPolicy>
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants> <DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -14,14 +13,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="Licensing/CMakeLists.txt" /> <ProjectReference Include="Licensing/CMakeLists.txt" />
<ProjectReference Include="../NetServer/NetServer.csproj" /> <ProjectReference Include="../NETServer/NETServer.csproj" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
</Project> </Project>

View file

@ -5,8 +5,7 @@
<CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim> <CLRTestScriptLocalCoreShim>true</CLRTestScriptLocalCoreShim>
<RequiresMockHostPolicy>true</RequiresMockHostPolicy> <RequiresMockHostPolicy>true</RequiresMockHostPolicy>
<IlrtTestKind>BuildOnly</IlrtTestKind> <IlrtTestKind>BuildOnly</IlrtTestKind>
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants> <DefineConstants>BLOCK_WINDOWS_NANO</DefineConstants>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -14,14 +13,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="Primitives/CMakeLists.txt" /> <ProjectReference Include="Primitives/CMakeLists.txt" />
<ProjectReference Include="../NetServer/NetServer.csproj" /> <ProjectReference Include="../NETServer/NETServer.csproj" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
</Project> </Project>

View file

@ -0,0 +1,9 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- SDK Style projects auto-magically include this file. -->
<Import Project="..\Directory.Build.props" />
<!-- Properties for all Interop managed test assets -->
<PropertyGroup>
<InteropCommonDir>$(MSBuildThisFileDirectory)common/</InteropCommonDir>
</PropertyGroup>
</Project>

View file

@ -1,8 +1,6 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Properties for all Interop managed test assets --> <!-- SDK Style projects auto-magically include this file. -->
<PropertyGroup> <Import Project="..\Directory.Build.targets" />
<InteropCommonDir>$(MSBuildThisFileDirectory)common/</InteropCommonDir>
</PropertyGroup>
<!-- Add the CoreCLRTestLibrary dependency --> <!-- Add the CoreCLRTestLibrary dependency -->
<ItemGroup Condition="('$(IgnoreCoreCLRTestLibraryDependency)' != 'true') And ('$(ReferenceSystemPrivateCoreLib)' != 'true')"> <ItemGroup Condition="('$(IgnoreCoreCLRTestLibraryDependency)' != 'true') And ('$(ReferenceSystemPrivateCoreLib)' != 'true')">
@ -18,12 +16,15 @@
<Compile Include="$(MSBuildThisFileDirectory)\..\Common\CoreCLRTestLibrary\HostPolicyMock.cs" Condition="'$(RequiresMockHostPolicy)' == 'true'"/> <Compile Include="$(MSBuildThisFileDirectory)\..\Common\CoreCLRTestLibrary\HostPolicyMock.cs" Condition="'$(RequiresMockHostPolicy)' == 'true'"/>
</ItemGroup> </ItemGroup>
<!-- Required debug vcruntime and UCRT dlls --> <Target Name="CopyInteropNativeRuntimeDependencies"
<ItemGroup BeforeTargets="CopyAllNativeProjectReferenceBinaries"
Condition="'$(TargetsWindows)' == 'true' And ('$(Configuration)' == 'Debug' Or '$(Configuration)' == 'Checked') And '$(CopyDebugCRTDllsToOutputDirectory)' == 'true'" > Condition="'$(TargetsWindows)' == 'true' And ('$(Configuration)' == 'Debug' Or '$(Configuration)' == 'Checked') And '$(CopyDebugCRTDllsToOutputDirectory)' == 'true'" >
<!-- Required debug vcruntime and UCRT dlls -->
<None Include="$(VCToolsRedistDir)onecore/debug_nonredist/$(TargetArchitecture)/Microsoft.VC*.DebugCRT/vcruntime*d.dll" Link="%(Filename)%(Extension)" CopyToOutputDirectory="Always" /> <ItemGroup>
<None Include="$(VCToolsRedistDir)onecore/debug_nonredist/$(TargetArchitecture)/Microsoft.VC*.DebugCRT/msvcp*d.dll" Link="%(Filename)%(Extension)" CopyToOutputDirectory="Always" /> <InteropNativeRuntimeDependencies Include="$(VCToolsRedistDir)onecore/debug_nonredist/$(TargetArchitecture)/Microsoft.VC*.DebugCRT/vcruntime*d.dll" />
<None Include="$(ExtensionSdkDir)/Microsoft.UniversalCRT.Debug/$(UCRTVersion)/Redist/Debug/$(TargetArchitecture)/ucrtbased.dll" CopyToOutputDirectory="Always" /> <InteropNativeRuntimeDependencies Include="$(VCToolsRedistDir)onecore/debug_nonredist/$(TargetArchitecture)/Microsoft.VC*.DebugCRT/msvcp*d.dll" />
</ItemGroup> <InteropNativeRuntimeDependencies Include="$(ExtensionSdkDir)/Microsoft.UniversalCRT.Debug/$(UCRTVersion)/Redist/Debug/$(TargetArchitecture)/ucrtbased.dll" />
</ItemGroup>
<Copy SourceFiles="@(InteropNativeRuntimeDependencies)" DestinationFolder="$(OutputPath)" />
</Target>
</Project> </Project>

View file

@ -13,13 +13,11 @@ class Test
private const string PathEnvSubdirectoryName = "Subdirectory"; private const string PathEnvSubdirectoryName = "Subdirectory";
private const string PathEnvFileName = "MovedNativeLib"; private const string PathEnvFileName = "MovedNativeLib";
#if TARGET_WINDOWS private const string RelativePath1Windows = @".\RelativeNative\..\DllImportPath_Relative";
private const string RelativePath1 = @".\RelativeNative\..\DllImportPath_Relative"; private const string RelativePath3Windows = @"..\DllImportPathTest\DllImportPath_Relative";
private const string RelativePath3 = @"..\DllImportPathTest\DllImportPath_Relative";
#else private const string RelativePath1Unix = @"./RelativeNative/../libDllImportPath_Relative";
private const string RelativePath1 = @"./RelativeNative/../libDllImportPath_Relative"; private const string RelativePath3Unix = @"../DllImportPathTest/libDllImportPath_Relative";
private const string RelativePath3 = @"../DllImportPathTest/libDllImportPath_Relative";
#endif
private const string UnicodeFileName = "DllImportPath_Unicode✔"; private const string UnicodeFileName = "DllImportPath_Unicode✔";
@ -35,14 +33,20 @@ class Test
[DllImport(@".\DllImportPath.Local.dll", EntryPoint = "GetZero")] [DllImport(@".\DllImportPath.Local.dll", EntryPoint = "GetZero")]
private static extern int GetZero_LocalWithDot2(); private static extern int GetZero_LocalWithDot2();
[DllImport(RelativePath1, EntryPoint = "GetZero")] [DllImport(RelativePath1Windows, EntryPoint = "GetZero")]
private static extern int GetZero_Relative1(); private static extern int GetZero_Relative1Windows();
[DllImport(RelativePath1Unix, EntryPoint = "GetZero")]
private static extern int GetZero_Relative1Unix();
[DllImport(@"..\DllImportPathTest\DllImportPath_Relative.dll", EntryPoint = "GetZero")] [DllImport(@"..\DllImportPathTest\DllImportPath_Relative.dll", EntryPoint = "GetZero")]
private static extern int GetZero_Relative2(); private static extern int GetZero_Relative2();
[DllImport(RelativePath3, EntryPoint = "GetZero")] [DllImport(RelativePath3Windows, EntryPoint = "GetZero")]
private static extern int GetZero_Relative3(); private static extern int GetZero_Relative3Windows();
[DllImport(RelativePath3Unix, EntryPoint = "GetZero")]
private static extern int GetZero_Relative3Unix();
[DllImport(@".\..\DllImportPathTest\DllImportPath_Relative.dll", EntryPoint = "GetZero")] [DllImport(@".\..\DllImportPathTest\DllImportPath_Relative.dll", EntryPoint = "GetZero")]
private static extern int GetZero_Relative4(); private static extern int GetZero_Relative4();
@ -77,22 +81,37 @@ class Test
{ {
string strManaged = "Managed"; string strManaged = "Managed";
string native = " Native"; string native = " Native";
bool isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) // We need to ensure that the subdirectory exists for off-Windows. if (!isWindows) // We need to ensure that the subdirectory exists for off-Windows.
{ {
var currentDirectory = Directory.GetCurrentDirectory(); var currentDirectory = Directory.GetCurrentDirectory();
var info = new DirectoryInfo(currentDirectory); var info = new DirectoryInfo(currentDirectory);
info.CreateSubdirectory(RelativeSubdirectoryName); info.CreateSubdirectory(RelativeSubdirectoryName);
} }
GetZero_Relative1(); if (isWindows)
{
GetZero_Relative1Windows();
}
else
{
GetZero_Relative1Unix();
}
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{ {
GetZero_Relative2(); GetZero_Relative2();
} }
GetZero_Relative3(); if (isWindows)
{
GetZero_Relative3Windows();
}
else
{
GetZero_Relative3Unix();
}
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{ {

View file

@ -19,10 +19,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="CMakeLists.txt" /> <ProjectReference Include="CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
</Project> </Project>

View file

@ -9,10 +9,4 @@
<ProjectReference Include="CMakeLists.txt" /> <ProjectReference Include="CMakeLists.txt" />
<ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" /> <ProjectReference Include="$(TestSourceDir)Common/CoreCLRTestLibrary/CoreCLRTestLibrary.csproj" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
</Project> </Project>

View file

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
</PropertyGroup> </PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<ItemGroup> <ItemGroup>
<Compile Include="$(MSBuildProjectName).cs" /> <Compile Include="$(MSBuildProjectName).cs" />
</ItemGroup> </ItemGroup>

View file

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<CLRTestKind>BuildOnly</CLRTestKind> <CLRTestKind>BuildOnly</CLRTestKind>
<DefineConstants>$(DefineConstants);$([System.String]::Copy('$(TargetArchitecture)').ToUpper())</DefineConstants>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<GenerateRunScript>false</GenerateRunScript> <GenerateRunScript>false</GenerateRunScript>
</PropertyGroup> </PropertyGroup>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>library</OutputType> <OutputType>library</OutputType>
</PropertyGroup> </PropertyGroup>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>library</OutputType> <OutputType>library</OutputType>
<DefineConstants>$(DefineConstants);CUSTOMMARSHALERS2</DefineConstants> <DefineConstants>$(DefineConstants);CUSTOMMARSHALERS2</DefineConstants>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="../../Interop.settings.targets" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="../../Interop.settings.targets" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

View file

@ -2,7 +2,8 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants Condition="'$(TargetsWindows)' == 'true'">$(DefineConstants);Windows</DefineConstants> <!-- There is a Windows and a non-Windows version of this test to allow it to be compiled for all targets -->
<CLRTestTargetUnsupported Condition="'$(TargetsWindows)' == 'true'">true</CLRTestTargetUnsupported>
<!-- The test uses xunit directly and it fails to find the test assembly for some reason --> <!-- The test uses xunit directly and it fails to find the test assembly for some reason -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>
@ -10,10 +11,4 @@
<Compile Include="ICustomMarshaler.cs" /> <Compile Include="ICustomMarshaler.cs" />
<Compile Include="..\..\..\Common\XunitBase.cs" /> <Compile Include="..\..\..\Common\XunitBase.cs" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
</Project> </Project>

View file

@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants>$(DefineConstants);Windows</DefineConstants>
<!-- There is a Windows and a non-Windows version of this test to allow it to be compiled for all targets -->
<CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<!-- The test uses xunit directly and it fails to find the test assembly for some reason -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup>
<ItemGroup>
<Compile Include="ICustomMarshaler.cs" />
<Compile Include="..\..\..\common\XunitBase.cs" />
</ItemGroup>
</Project>

View file

@ -1,13 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- IJW is Windows-only --> <!-- IJW is Windows-only -->
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- IJW is not supported on ARM64 --> <!-- IJW is not supported on ARM64 -->
<DisableProjectBuild Condition="'$(TargetArchitecture)' == 'arm64'">true</DisableProjectBuild> <CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm64'">true</CLRTestTargetUnsupported>
<!-- Loading IJW assemblies into an unloadable context is not allowed --> <!-- Loading IJW assemblies into an unloadable context is not allowed -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -1,13 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- IJW is Windows-only --> <!-- IJW is Windows-only -->
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- IJW is not supported on ARM64 --> <!-- IJW is not supported on ARM64 -->
<DisableProjectBuild Condition="'$(TargetArchitecture)' == 'arm64'">true</DisableProjectBuild> <CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm64'">true</CLRTestTargetUnsupported>
<!-- Loading IJW assemblies into an unloadable context is not allowed --> <!-- Loading IJW assemblies into an unloadable context is not allowed -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -6,10 +6,9 @@
<RequiresMockHostPolicy>true</RequiresMockHostPolicy> <RequiresMockHostPolicy>true</RequiresMockHostPolicy>
<!-- IJW is Windows-only --> <!-- IJW is Windows-only -->
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- IJW is not supported on ARM64 --> <!-- IJW is not supported on ARM64 -->
<DisableProjectBuild Condition="'$(TargetArchitecture)' == 'arm64'">true</DisableProjectBuild> <CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm64'">true</CLRTestTargetUnsupported>
<!-- Loading IJW assemblies into an unloadable context is not allowed --> <!-- Loading IJW assemblies into an unloadable context is not allowed -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>
@ -23,5 +22,4 @@
<ProjectReference Include="../IjwNativeCallingManagedDll/CMakeLists.txt" /> <ProjectReference Include="../IjwNativeCallingManagedDll/CMakeLists.txt" />
<ProjectReference Include="../ijwhostmock/CMakeLists.txt" /> <ProjectReference Include="../ijwhostmock/CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
</Project> </Project>

View file

@ -1,13 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- IJW is Windows-only --> <!-- IJW is Windows-only -->
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- IJW is not supported on ARM64 --> <!-- IJW is not supported on ARM64 -->
<DisableProjectBuild Condition="'$(TargetArchitecture)' == 'arm64'">true</DisableProjectBuild> <CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm64'">true</CLRTestTargetUnsupported>
<!-- Loading IJW assemblies into an unloadable context is not allowed --> <!-- Loading IJW assemblies into an unloadable context is not allowed -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -1,13 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- IJW is Windows-only --> <!-- IJW is Windows-only -->
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- IJW is not supported on ARM64 --> <!-- IJW is not supported on ARM64 -->
<DisableProjectBuild Condition="'$(TargetArchitecture)' == 'arm64'">true</DisableProjectBuild> <CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm64'">true</CLRTestTargetUnsupported>
<!-- Loading IJW assemblies into an unloadable context is not allowed --> <!-- Loading IJW assemblies into an unloadable context is not allowed -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -1,15 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="$([MSBuild]::GetPathOfFileAbove(Interop.settings.targets))" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- IJW is Windows-only --> <!-- IJW is Windows-only -->
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
<!-- IJW is not supported on ARM64 --> <!-- IJW is not supported on ARM64 -->
<DisableProjectBuild Condition="'$(TargetArchitecture)' == 'arm64'">true</DisableProjectBuild> <CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm64'">true</CLRTestTargetUnsupported>
<!-- Native varargs not supported on ARM --> <!-- Native varargs not supported on ARM -->
<DisableProjectBuild Condition="'$(TargetArchitecture)' == 'arm'">true</DisableProjectBuild> <CLRTestTargetUnsupported Condition="'$(TargetArchitecture)' == 'arm' or '$(TargetArchitecture)' == 'armel'">true</CLRTestTargetUnsupported>
<!-- Loading IJW assemblies into an unloadable context is not allowed --> <!-- Loading IJW assemblies into an unloadable context is not allowed -->
<UnloadabilityIncompatible>true</UnloadabilityIncompatible> <UnloadabilityIncompatible>true</UnloadabilityIncompatible>
</PropertyGroup> </PropertyGroup>

View file

@ -2,8 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="IUnknownTest.cs" /> <Compile Include="IUnknownTest.cs" />

View file

@ -2,8 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<!-- Test unsupported outside of windows --> <!-- Test unsupported outside of windows -->
<TestUnsupportedOutsideWindows>true</TestUnsupportedOutsideWindows> <CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
<DisableProjectBuild Condition="'$(TargetsUnix)' == 'true'">true</DisableProjectBuild>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="TestInALC.cs" /> <Compile Include="TestInALC.cs" />

View file

@ -2,7 +2,8 @@
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants Condition="$(TargetOS) == 'Windows_NT'">WINDOWS</DefineConstants> <!-- There is a Windows and a non-Windows version of this test to allow it to be compiled for all targets -->
<CLRTestTargetUnsupported Condition="'$(TargetsWindows)' == 'true'">true</CLRTestTargetUnsupported>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="CallbackStressTest.cs" /> <Compile Include="CallbackStressTest.cs" />
@ -11,10 +12,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="../NativeLibraryToLoad/CMakeLists.txt" /> <ProjectReference Include="../NativeLibraryToLoad/CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<PropertyGroup>
<CLRTestNeedTarget>1</CLRTestNeedTarget>
</PropertyGroup>
<ItemGroup>
<TraitTags Include="OsSpecific" />
</ItemGroup>
</Project> </Project>

View file

@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefineConstants >WINDOWS</DefineConstants>
<!-- There is a Windows and a non-Windows version of this test to allow it to be compiled for all targets -->
<CLRTestTargetUnsupported Condition="'$(TargetsWindows)' != 'true'">true</CLRTestTargetUnsupported>
</PropertyGroup>
<ItemGroup>
<Compile Include="CallbackStressTest.cs" />
<Compile Include="../NativeLibraryToLoad/NativeLibraryToLoad.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../NativeLibraryToLoad/CMakeLists.txt" />
</ItemGroup>
</Project>

View file

@ -8,5 +8,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\LPArrayNative\CMakeLists.txt" /> <ProjectReference Include="..\LPArrayNative\CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<Import Project="../../../../Interop.settings.targets" />
</Project> </Project>

View file

@ -8,5 +8,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\LPArrayNative\CMakeLists.txt" /> <ProjectReference Include="..\LPArrayNative\CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<Import Project="../../../../Interop.settings.targets" />
</Project> </Project>

View file

@ -8,5 +8,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\LPArrayNative\CMakeLists.txt" /> <ProjectReference Include="..\LPArrayNative\CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<Import Project="../../../../Interop.settings.targets" />
</Project> </Project>

View file

@ -8,5 +8,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\LPArrayNative\CMakeLists.txt" /> <ProjectReference Include="..\LPArrayNative\CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<Import Project="../../../../Interop.settings.targets" />
</Project> </Project>

View file

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="../../Interop.settings.targets" />
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

View file

@ -8,5 +8,4 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="CMakeLists.txt" /> <ProjectReference Include="CMakeLists.txt" />
</ItemGroup> </ItemGroup>
<Import Project="../../Interop.settings.targets" />
</Project> </Project>

Some files were not shown because too many files have changed in this diff Show more