diff --git a/NuGet.config b/NuGet.config
index 7071908f1abac..4ea7e326f205a 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -13,6 +13,7 @@
+
diff --git a/eng/helixcorefxtests.proj b/eng/helixcorefxtests.proj
index b335ab42a4297..f25f1cc0e19e9 100644
--- a/eng/helixcorefxtests.proj
+++ b/eng/helixcorefxtests.proj
@@ -85,6 +85,7 @@
TODO: ProjectDir, RootBinDir, TestWorkingDir, and TargetsWindows are global properties set in dir.props, remove the property assignment here when we port to arcade.
-->
$(MSBuildThisFileDirectory)..\
+ $(ProjectDir)\src\coreclr\
$(ProjectDir)bin\
$(RootBinDir)tests\$(__BuildOS).$(__BuildArch).$(__BuildType)\
true
@@ -149,7 +150,7 @@
- <_ProjectsToBuild Include="..\tests\testenvironment.proj">
+ <_ProjectsToBuild Include="$(ProjectDir)tests\testenvironment.proj">
Scenario=$(Scenario);TestEnvFileName=$(TestEnvFilePath);TargetsWindows=$(TargetsWindows)
diff --git a/eng/pipelines/coreclr/templates/build-test-job.yml b/eng/pipelines/coreclr/templates/build-test-job.yml
index 880ee2935feb8..851673b48cd34 100644
--- a/eng/pipelines/coreclr/templates/build-test-job.yml
+++ b/eng/pipelines/coreclr/templates/build-test-job.yml
@@ -67,7 +67,7 @@ jobs:
displayName: Install native dependencies
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
# Necessary to install correct cmake version
- - script: $(coreClrRepoRootDir)eng\common\init-tools-native.cmd -InstallDirectory $(Build.SourcesDirectory)\native-tools -Force
+ - script: $(Build.SourcesDirectory)\eng\common\init-tools-native.cmd -InstallDirectory $(Build.SourcesDirectory)\native-tools -Force
displayName: Install native dependencies
diff --git a/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml b/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml
index b10490379eae5..a44820f01828e 100644
--- a/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml
+++ b/eng/pipelines/coreclr/templates/crossgen-comparison-job.yml
@@ -40,14 +40,14 @@ jobs:
value: $(osGroup).$(hostArchType)_$(archType).$(buildConfigUpper)
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- name: binDirectory
- value: $(Build.SourcesDirectory)/bin
+ value: $(coreClrRepoRoot)/bin
- name: productDirectory
- value: $(Build.SourcesDirectory)/bin/Product
+ value: $(binDirectory)/Product
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- name: binDirectory
- value: $(Build.SourcesDirectory)\bin
+ value: $(coreClrRepoRoot)\bin
- name: productDirectory
- value: $(Build.SourcesDirectory)\bin\Product
+ value: $(binDirectory\Product
# Test job depends on the corresponding build job
dependsOn: ${{ format('build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
@@ -83,12 +83,8 @@ jobs:
# Populate Core_Root
- - ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- - script: ./build-test.sh $(buildConfig) $(archType) $(crossArg) generatelayoutonly
- displayName: Populate Core_Root
- - ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- - script: build-test.cmd $(buildConfig) $(archType) generateLayoutOnly
- displayName: Populate Core_Root
+ - script: $(coreClrRepoRootDir)build-test$(scriptExt) $(buildConfig) $(archType) $(crossArg) generatelayoutonly
+ displayName: Populate Core_Root
# Create baseline output on the host (x64) machine
@@ -96,7 +92,7 @@ jobs:
displayName: Create cross-platform crossgen baseline
inputs:
scriptSource: 'filePath'
- scriptPath: $(Build.SourcesDirectory)/tests/scripts/crossgen_comparison.py
+ scriptPath: $(coreClrRepoRoot)/tests/scripts/crossgen_comparison.py
${{ if ne(parameters.osGroup, 'Windows_NT') }}:
arguments:
crossgen_framework
@@ -126,7 +122,7 @@ jobs:
Creator: $(Creator)
WorkItemTimeout: 1:00 # 1 hour
WorkItemDirectory: '$(binDirectory)'
- CorrelationPayloadDirectory: '$(Build.SourcesDirectory)/tests/scripts'
+ CorrelationPayloadDirectory: '$(coreClrRepoRoot)/tests/scripts'
${{ if ne(parameters.osName, 'Windows_NT') }}:
WorkItemCommand:
chmod +x $HELIX_WORKITEM_PAYLOAD/Product/$(targetFlavor)/crossgen;
diff --git a/eng/pipelines/coreclr/templates/format-job.yml b/eng/pipelines/coreclr/templates/format-job.yml
index 30e90348dd5ad..d7bd4cbbe4de1 100644
--- a/eng/pipelines/coreclr/templates/format-job.yml
+++ b/eng/pipelines/coreclr/templates/format-job.yml
@@ -10,7 +10,7 @@ parameters:
### Format job
jobs:
-- template: xplat-job.yml
+- template: xplat-pipeline-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
archType: ${{ parameters.archType }}
@@ -32,12 +32,12 @@ jobs:
displayName: Run tests/scripts/format.py
inputs:
scriptSource: 'filePath'
- scriptPath: $(Build.SourcesDirectory)/tests/scripts/format.py
- arguments: '-c $(Build.SourcesDirectory) -o $(osGroup) -a $(archType)'
+ scriptPath: $(coreClrRepoRoot)/tests/scripts/format.py
+ arguments: '-c $(coreClrRepoRoot) -o $(osGroup) -a $(archType)'
- task: PublishBuildArtifacts@1
displayName: Publish format.patch
inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/format.patch'
+ PathtoPublish: '$(coreClrRepoRoot)/format.patch'
ArtifactName: format.$(osGroup).$(archType).patch
continueOnError: true
condition: failed()
diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml
index f0d598d718049..a6b0998105778 100644
--- a/eng/pipelines/coreclr/templates/perf-job.yml
+++ b/eng/pipelines/coreclr/templates/perf-job.yml
@@ -55,9 +55,9 @@ jobs:
# Create Core_Root
- ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
- - script: ./build-test.sh ${{ parameters.buildConfig }} ${{ parameters.archType }} generatelayoutonly
+ - script: $(coreClrRepoRootDir)build-test$(scriptExt) ${{ parameters.buildConfig }} ${{ parameters.archType }} generatelayoutonly
displayName: Create Core_Root
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
# TODO: add generatelayoutonly to build-test.cmd.
- - script: build-test.cmd ${{ parameters.buildConfig }} ${{ parameters.archType }} skipmanaged skipnative
+ - script: $(coreClrRepoRootDir)build-test$(scriptExt) ${{ parameters.buildConfig }} ${{ parameters.archType }} skipmanaged skipnative
displayName: Create Core_Root
\ No newline at end of file
diff --git a/eng/pipelines/coreclr/templates/run-test-job.yml b/eng/pipelines/coreclr/templates/run-test-job.yml
index ddac9b17b6181..3b26e220a8a58 100644
--- a/eng/pipelines/coreclr/templates/run-test-job.yml
+++ b/eng/pipelines/coreclr/templates/run-test-job.yml
@@ -250,7 +250,7 @@ jobs:
# Choose which tests to send to Helix: CoreFX or CoreCLR.
${{ if eq(parameters.corefxTests, true) }}:
- helixProjectArguments: '$(coreClrRepoRoot)/eng/helixcorefxtests.proj'
+ helixProjectArguments: '$(Build.SourcesDirectory)/eng/helixcorefxtests.proj'
${{ if ne(parameters.corefxTests, true) }}:
helixProjectArguments: '$(coreClrRepoRoot)/tests/src/helixpublishwitharcade.proj'
diff --git a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
index ffc806edf8714..ac96e979781ae 100644
--- a/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
+++ b/eng/pipelines/coreclr/templates/xplat-pipeline-job.yml
@@ -80,9 +80,9 @@ jobs:
value: '/'
- name: coreClrRepoRoot
- value: '$(Build.SourcesDirectory)/src/coreclr
+ value: '$(Build.SourcesDirectory)/src/coreclr'
- - ${{ if not(startsWith(variables['Build.DefinitionName'], 'runtime')) }}:'
+ - ${{ if not(startsWith(variables['Build.DefinitionName'], 'runtime')) }}:
- name: coreClrRepoRoot
value: '$(Build.SourcesDirectory)'
diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh
index 9f178bfa84fad..ecf417a10f974 100755
--- a/src/coreclr/build-test.sh
+++ b/src/coreclr/build-test.sh
@@ -537,7 +537,7 @@ build_native_projects()
extraCmakeArguments="$extraCmakeArguments -DCLR_CMAKE_ENABLE_CODE_COVERAGE=1"
fi
- nextCommand="\"$scriptDir/gen-buildsys.sh\" \"$__TestDir\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $extraCmakeArguments $__cmakeargs"
+ nextCommand="CONFIG_DIR=\"$__RepoRootDir/eng/common/cross\" \"$scriptDir/gen-buildsys.sh\" \"$__TestDir\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $extraCmakeArguments $__cmakeargs"
echo "Invoking $nextCommand"
eval $nextCommand
diff --git a/src/coreclr/build.sh b/src/coreclr/build.sh
index d2d3dad1f5ee4..f042e9ccc2c4b 100755
--- a/src/coreclr/build.sh
+++ b/src/coreclr/build.sh
@@ -235,7 +235,7 @@ build_native()
__versionSourceFile="$intermediatesForBuild/version.c"
if [ $__SkipGenerateVersion == 0 ]; then
pwd
- "$__RepoRootDir/eng/common/msbuild.sh" $__ArcadeScriptArgs $__ProjectRoot/eng/empty.csproj \
+ "$__RepoRootDir/eng/common/msbuild.sh" $__ArcadeScriptArgs $__RepoRootDir/eng/empty.csproj \
/p:NativeVersionFile=$__versionSourceFile \
/t:GenerateNativeVersionFile /restore \
$__CommonMSBuildArgs $__UnprocessedBuildArgs
@@ -273,8 +273,9 @@ build_native()
extraCmakeArguments="$extraCmakeArguments -DCLR_CMAKE_ENABLE_CODE_COVERAGE=1"
fi
- echo "Invoking \"$scriptDir/gen-buildsys.sh\" \"$__ProjectRoot\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $scan_build $extraCmakeArguments $__cmakeargs"
- source "$scriptDir/gen-buildsys.sh" "$__ProjectRoot" "$intermediatesForBuild" $platformArch $__BuildType $generator $scan_build "$extraCmakeArguments" "$__cmakeargs"
+ nextCommand="CONFIG_DIR=\"$__RepoRootDir/eng/common/cross\" \"$scriptDir/gen-buildsys.sh\" \"$__ProjectRoot\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $scan_build $extraCmakeArguments $__cmakeargs"
+ echo "Invoking $nextCommand"
+ eval $nextCommand
if [ $? != 0 ]; then
echo "${__ErrMsgPrefix}Failed to generate $message build project!"
@@ -1063,7 +1064,7 @@ __MsbuildDebugLogsDir="$__LogsDir/MsbuildDebugLogs"
__BinDir="$__RootBinDir/Product/$__BuildOS.$__BuildArch.$__BuildType"
__PackagesBinDir="$__BinDir/.nuget"
export __IntermediatesDir="$__RootBinDir/obj/$__BuildOS.$__BuildArch.$__BuildType"
-export __ArtifactsIntermediatesDir="$__ProjectDir/artifacts/obj"
+export __ArtifactsIntermediatesDir="$__RepoRootDir/artifacts/obj"
__isMSBuildOnNETCoreSupported=0
__CrossComponentBinDir="$__BinDir"
diff --git a/src/coreclr/tests/scripts/format.py b/src/coreclr/tests/scripts/format.py
index a20368a5905d6..bf34116831196 100644
--- a/src/coreclr/tests/scripts/format.py
+++ b/src/coreclr/tests/scripts/format.py
@@ -16,10 +16,37 @@
import os
import sys
import tarfile
+import tempfile
import zipfile
import subprocess
import shutil
+class ChangeDir:
+ def __init__(self, dir):
+ self.dir = dir
+ self.cwd = None
+
+ def __enter__(self):
+ self.cwd = os.getcwd()
+ os.chdir(self.dir)
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ os.chdir(self.cwd)
+
+class TempDir:
+ def __init__(self, path=None):
+ self.dir = tempfile.mkdtemp() if path is None else path
+ self.cwd = None
+
+ def __enter__(self):
+ self.cwd = os.getcwd()
+ os.chdir(self.dir)
+
+ return self.dir
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
+ os.chdir(self.cwd)
+
# Version specific imports
if sys.version_info.major < 3:
@@ -63,7 +90,8 @@ def main(argv):
print('Bad path to coreclr')
return -1
- coreclr = args.coreclr
+ coreclr = args.coreclr.replace('/', os.sep)
+
platform = args.os
arch = args.arch
@@ -86,109 +114,116 @@ def main(argv):
bootstrapUrl = "https://raw.githubusercontent.com/dotnet/jitutils/master/" + bootstrapFilename
- bootstrapPath = os.path.join(coreclr, bootstrapFilename)
- urlretrieve(bootstrapUrl, bootstrapPath)
-
- if not os.path.isfile(bootstrapPath):
- print("Did not download bootstrap!")
- return -1
+ with TempDir() as temp_location:
+ bootstrapPath = os.path.join(temp_location, bootstrapFilename)
- # On *nix platforms, we need to make the bootstrap file executable
+ assert len(os.listdir(os.path.dirname(bootstrapPath))) == 0
- if platform == 'Linux' or platform == 'OSX':
- print("Making bootstrap executable")
- os.chmod(bootstrapPath, 0o751)
+ urlretrieve(bootstrapUrl, bootstrapPath)
- print(bootstrapPath)
+ if not os.path.isfile(bootstrapPath):
+ print("Did not download bootstrap!")
+ return -1
- # Run bootstrap
- if platform == 'Linux' or platform == 'OSX':
- print("Running bootstrap")
- proc = subprocess.Popen(['bash', bootstrapPath], env=my_env)
- output,error = proc.communicate()
- elif platform == 'Windows_NT':
- proc = subprocess.Popen([bootstrapPath], env=my_env)
- output,error = proc.communicate()
+ # On *nix platforms, we need to make the bootstrap file executable
- # Run jit-format
+ if platform == 'Linux' or platform == 'OSX':
+ print("Making bootstrap executable")
+ os.chmod(bootstrapPath, 0o751)
- returncode = 0
- jitutilsBin = os.path.join(coreclr, "jitutils", "bin")
- my_env["PATH"] = jitutilsBin + os.pathsep + my_env["PATH"]
- current_dir = os.getcwd()
+ print(bootstrapPath)
- if not os.path.isdir(jitutilsBin):
- print("Jitutils not built!")
- return -1
-
- jitformat = jitutilsBin
-
- if platform == 'Linux' or platform == 'OSX':
- jitformat = os.path.join(jitformat, "jit-format")
- elif platform == 'Windows_NT':
- jitformat = os.path.join(jitformat,"jit-format.bat")
- errorMessage = ""
-
- builds = ["Checked", "Debug", "Release"]
- projects = ["dll", "standalone", "crossgen"]
-
- for build in builds:
- for project in projects:
- proc = subprocess.Popen([jitformat, "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env)
+ # Run bootstrap
+ if platform == 'Linux' or platform == 'OSX':
+ print("Running bootstrap")
+ proc = subprocess.Popen(['bash', bootstrapPath], env=my_env)
+ output,error = proc.communicate()
+ elif platform == 'Windows_NT':
+ proc = subprocess.Popen([bootstrapPath], env=my_env)
output,error = proc.communicate()
- errorcode = proc.returncode
-
- if errorcode != 0:
- errorMessage += "\tjit-format -a " + arch + " -b " + build + " -o " + platform
- errorMessage += " -c --verbose --fix --projects " + project +"\n"
- returncode = errorcode
-
- # Fix mode doesn't return an error, so we have to run the build, then run with
- # --fix to generate the patch. This means that it is likely only the first run
- # of jit-format will return a formatting failure.
- if errorcode == -2:
- # If errorcode was -2, no need to run clang-tidy again
- proc = subprocess.Popen([jitformat, "--fix", "--untidy", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env)
- output,error = proc.communicate()
- else:
- # Otherwise, must run both
- proc = subprocess.Popen([jitformat, "--fix", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env)
- output,error = proc.communicate()
-
- os.chdir(current_dir)
-
- if returncode != 0:
- # Create a patch file
- patchFile = open("format.patch", "w")
- proc = subprocess.Popen(["git", "diff", "--patch", "-U20"], env=my_env, stdout=patchFile)
- output,error = proc.communicate()
- if os.path.isdir(jitUtilsPath):
- print("Deleting " + jitUtilsPath)
- shutil.rmtree(jitUtilsPath, onerror=del_rw)
+ # Run jit-format
+
+ returncode = 0
+ jitutilsBin = os.path.join(os.path.dirname(bootstrapPath), "jitutils", "bin")
+ my_env["PATH"] = jitutilsBin + os.pathsep + my_env["PATH"]
+ current_dir = os.getcwd()
+
+ if not os.path.isdir(jitutilsBin):
+ print("Jitutils not built!")
+ return -1
+
+ jitformat = jitutilsBin
+
+ if platform == 'Linux' or platform == 'OSX':
+ jitformat = os.path.join(jitformat, "jit-format")
+ elif platform == 'Windows_NT':
+ jitformat = os.path.join(jitformat,"jit-format.bat")
+ errorMessage = ""
+
+ builds = ["Checked", "Debug", "Release"]
+ projects = ["dll", "standalone", "crossgen"]
+
+ for build in builds:
+ for project in projects:
+ proc = subprocess.Popen([jitformat, "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env)
+ output,error = proc.communicate()
+ errorcode = proc.returncode
+
+ if errorcode != 0:
+ errorMessage += "\tjit-format -a " + arch + " -b " + build + " -o " + platform
+ errorMessage += " -c --verbose --fix --projects " + project +"\n"
+ returncode = errorcode
+
+ # Fix mode doesn't return an error, so we have to run the build, then run with
+ # --fix to generate the patch. This means that it is likely only the first run
+ # of jit-format will return a formatting failure.
+ if errorcode == -2:
+ # If errorcode was -2, no need to run clang-tidy again
+ proc = subprocess.Popen([jitformat, "--fix", "--untidy", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env)
+ output,error = proc.communicate()
+ else:
+ # Otherwise, must run both
+ proc = subprocess.Popen([jitformat, "--fix", "-a", arch, "-b", build, "-o", platform, "-c", coreclr, "--verbose", "--projects", project], env=my_env)
+ output,error = proc.communicate()
+
+ os.chdir(current_dir)
+
+ patchFilePath = os.path.join(coreclr, "format.patch")
+
+ if returncode != 0:
+ # Create a patch file
+ print("Creating patch file " + patchFilePath)
+ patchFile = open(patchFilePath, "w")
+ proc = subprocess.Popen(["git", "diff", "--patch", "-U20"], env=my_env, stdout=patchFile)
+ output,error = proc.communicate()
- if os.path.isfile(bootstrapPath):
- print("Deleting " + bootstrapPath)
- os.remove(bootstrapPath)
-
- if returncode != 0:
- print("There were errors in formatting. Please run jit-format locally with: \n")
- print(errorMessage)
- print("\nOr download and apply generated patch:")
- print("1. From the GitHub 'Checks' page on the Pull Request, with the failing Formatting")
- print(" job selected (e.g., 'Formatting Linux x64'), click the 'View more details on")
- print(" Azure Pipelines' link.")
- print("3. Select the 'Summary' tab.")
- print("4. Open the 'Build artifacts published' entry.")
- print("5. Find the link to the OS/architecture appropriate format patch file.")
- print("6. Click on the link to download it.")
- print("7. Unzip the patch file.")
- print("8. git apply format.patch")
-
- if (returncode != 0) and (os.environ.get("TF_BUILD") == "True"):
- print("##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Build) Format job found errors, please apply the format patch.")
-
- return returncode
+ if os.path.isdir(jitUtilsPath):
+ print("Deleting " + jitUtilsPath)
+ shutil.rmtree(jitUtilsPath, onerror=del_rw)
+
+ if os.path.isfile(bootstrapPath):
+ print("Deleting " + bootstrapPath)
+ os.remove(bootstrapPath)
+
+ if returncode != 0:
+ print("There were errors in formatting. Please run jit-format locally with: \n")
+ print(errorMessage)
+ print("\nOr download and apply generated patch:")
+ print("1. From the GitHub 'Checks' page on the Pull Request, with the failing Formatting")
+ print(" job selected (e.g., 'Formatting Linux x64'), click the 'View more details on")
+ print(" Azure Pipelines' link.")
+ print("3. Select the 'Summary' tab.")
+ print("4. Open the 'Build artifacts published' entry.")
+ print("5. Find the link to the OS/architecture appropriate format patch file.")
+ print("6. Click on the link to download it.")
+ print("7. Unzip the patch file.")
+ print("8. git apply format.patch")
+
+ if (returncode != 0) and (os.environ.get("TF_BUILD") == "True"):
+ print("##vso[task.logissue type=error](NETCORE_ENGINEERING_TELEMETRY=Build) Format job found errors, please apply the format patch.")
+
+ return returncode
if __name__ == '__main__':
return_code = main(sys.argv[1:])
diff --git a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt
index f9639aa95aa7d..151d42f06c3d2 100644
--- a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt
+++ b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 2.6)
-project (ReversePInvokePassingByOutNative)
+project (RPIP_ByOutNative)
include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake")
include_directories("..")
set(SOURCES
@@ -7,7 +7,8 @@ set(SOURCES
)
# Additional files to reference:
# add the executable
-add_library (ReversePInvokePassingByOutNative SHARED ${SOURCES})
-target_link_libraries(ReversePInvokePassingByOutNative ${LINK_LIBRARIES_ADDITIONAL})
+add_library (RPIP_ByOutNative SHARED ${SOURCES})
+set_property (TARGET RPIP_ByOutNative PROPERTY OUTPUT_NAME ReversePInvokePassingByOutNative)
+target_link_libraries(RPIP_ByOutNative ${LINK_LIBRARIES_ADDITIONAL})
# add the install targets
-install (TARGETS ReversePInvokePassingByOutNative DESTINATION bin)
+install (TARGETS RPIP_ByOutNative DESTINATION bin)
diff --git a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt
index 180d43c9676c7..3176cfc826e96 100644
--- a/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt
+++ b/src/coreclr/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 2.6)
-project (ReversePInvokePassingByRefNative)
+project (RPIP_ByRefNative)
include ("${CLR_INTEROP_TEST_ROOT}/Interop.cmake")
include_directories("..")
set(SOURCES
@@ -7,7 +7,8 @@ set(SOURCES
)
# Additional files to reference:
# add the executable
-add_library (ReversePInvokePassingByRefNative SHARED ${SOURCES})
-target_link_libraries(ReversePInvokePassingByRefNative ${LINK_LIBRARIES_ADDITIONAL})
+add_library (RPIP_ByRefNative SHARED ${SOURCES})
+set_property (TARGET RPIP_ByRefNative PROPERTY OUTPUT_NAME ReversePInvokePassingByRefNative)
+target_link_libraries(RPIP_ByRefNative ${LINK_LIBRARIES_ADDITIONAL})
# add the install targets
-install (TARGETS ReversePInvokePassingByRefNative DESTINATION bin)
+install (TARGETS RPIP_ByRefNative DESTINATION bin)
diff --git a/src/coreclr/tests/src/runtest.proj b/src/coreclr/tests/src/runtest.proj
index c7b3483f293a6..420f865c9acda 100644
--- a/src/coreclr/tests/src/runtest.proj
+++ b/src/coreclr/tests/src/runtest.proj
@@ -26,7 +26,7 @@
$([System.IO.Path]::GetFullPath(%(Identity)))
-
+