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..2946dcf47e7ef 100644 --- a/src/coreclr/tests/scripts/format.py +++ b/src/coreclr/tests/scripts/format.py @@ -20,6 +20,18 @@ 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) + # Version specific imports if sys.version_info.major < 3: @@ -63,7 +75,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,7 +99,14 @@ def main(argv): bootstrapUrl = "https://raw.githubusercontent.com/dotnet/jitutils/master/" + bootstrapFilename - bootstrapPath = os.path.join(coreclr, bootstrapFilename) + bootstrapPath = os.path.join(os.path.join(coreclr, "bin", "jitutils"), bootstrapFilename) + + if os.path.isdir(os.path.dirname(bootstrapPath)): + shutil.rmtree(os.path.dirname(bootstrapPath)) + + assert not os.path.isdir(os.path.dirname(bootstrapPath)) + os.makedirs(os.path.dirname(bootstrapPath)) + urlretrieve(bootstrapUrl, bootstrapPath) if not os.path.isfile(bootstrapPath): @@ -101,19 +121,20 @@ def main(argv): print(bootstrapPath) - # 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() + with ChangeDir(os.path.dirname(bootstrapPath)): + # 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() # Run jit-format returncode = 0 - jitutilsBin = os.path.join(coreclr, "jitutils", "bin") + jitutilsBin = os.path.join(os.path.dirname(bootstrapPath), "jitutils", "bin") my_env["PATH"] = jitutilsBin + os.pathsep + my_env["PATH"] current_dir = os.getcwd() @@ -157,9 +178,12 @@ def main(argv): os.chdir(current_dir) + patchFilePath = os.path.join(coreclr, "format.patch") + if returncode != 0: # Create a patch file - patchFile = open("format.patch", "w") + 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() 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))) - +