From fe9ee892e088979bb328537122df43a12a83a3fa Mon Sep 17 00:00:00 2001 From: Tomas Date: Tue, 12 Nov 2019 15:25:03 +0100 Subject: [PATCH 1/2] Pre-consolidation mop up fixes #3 This change contains the remaining fixes I made while digging through the PR run in the runtime repo: 1) Some more repo-relative vs. coreclr-relative repo adjustments reflecting the migration process; 2) Make sure that XunitTestBinBase always ends with a directory separator, otherwise my recent fix for Common folder exclusion doesn't work; 3) Opportunistically shorten project names of two native interop test components - as the project name is repeated about 3-4 times in some intermediate paths, it quickly exceeds the standard Windows path length limit. Please note there's no functional change in the test. Thanks Tomas --- build-test.cmd | 2 +- build-test.sh | 2 +- build.sh | 4 ++-- eng/helixcorefxtests.proj | 3 ++- eng/pipelines/templates/build-test-job.yml | 2 +- .../templates/crossgen-comparison-job.yml | 20 ++++++++----------- eng/pipelines/templates/perf-job.yml | 4 ++-- eng/pipelines/templates/run-test-job.yml | 2 +- tests/runtest.cmd | 2 +- .../PassingByOut/CMakeLists.txt | 9 +++++---- .../PassingByRef/CMakeLists.txt | 9 +++++---- 11 files changed, 29 insertions(+), 30 deletions(-) diff --git a/build-test.cmd b/build-test.cmd index 5753c846cf6f..167e3d08361e 100644 --- a/build-test.cmd +++ b/build-test.cmd @@ -277,7 +277,7 @@ if "%__SkipRestorePackages%" == "1" goto SkipRestoreProduct echo %__MsgPrefix%Restoring CoreCLR product from packages -if not defined XunitTestBinBase set XunitTestBinBase=%__TestBinDir% +if not defined XunitTestBinBase set XunitTestBinBase=%__TestBinDir%\ set "CORE_ROOT=%XunitTestBinBase%\Tests\Core_Root" set __BuildLogRootName=Restore_Product diff --git a/build-test.sh b/build-test.sh index 7d6db0dd5668..0150b2959c7e 100755 --- a/build-test.sh +++ b/build-test.sh @@ -522,7 +522,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/build.sh b/build.sh index 85c35d6906af..84f2f79a8f76 100755 --- a/build.sh +++ b/build.sh @@ -193,7 +193,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 @@ -231,7 +231,7 @@ build_native() extraCmakeArguments="$extraCmakeArguments -DCLR_CMAKE_ENABLE_CODE_COVERAGE=1" fi - nextCommand="\"$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 diff --git a/eng/helixcorefxtests.proj b/eng/helixcorefxtests.proj index b335ab42a429..f25f1cc0e19e 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/templates/build-test-job.yml b/eng/pipelines/templates/build-test-job.yml index 880ee2935feb..851673b48cd3 100644 --- a/eng/pipelines/templates/build-test-job.yml +++ b/eng/pipelines/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/templates/crossgen-comparison-job.yml b/eng/pipelines/templates/crossgen-comparison-job.yml index b10490379eae..a44820f01828 100644 --- a/eng/pipelines/templates/crossgen-comparison-job.yml +++ b/eng/pipelines/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/templates/perf-job.yml b/eng/pipelines/templates/perf-job.yml index f0d598d71804..a6b099810577 100644 --- a/eng/pipelines/templates/perf-job.yml +++ b/eng/pipelines/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/templates/run-test-job.yml b/eng/pipelines/templates/run-test-job.yml index b8b6db113f21..b387b92034ef 100644 --- a/eng/pipelines/templates/run-test-job.yml +++ b/eng/pipelines/templates/run-test-job.yml @@ -257,7 +257,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/tests/runtest.cmd b/tests/runtest.cmd index fed5b0f756be..8594d1c4642e 100644 --- a/tests/runtest.cmd +++ b/tests/runtest.cmd @@ -117,7 +117,7 @@ set "__TestWorkingDir=%__RootBinDir%\tests\%__BuildOS%.%__BuildArch%.%__BuildTyp :: Default global test environment variables :: REVIEW: are these ever expected to be defined on entry to this script? Why? By whom? :: REVIEW: XunitTestReportDirBase is not used in this script. Who needs to have it set? -if not defined XunitTestBinBase set XunitTestBinBase=%__TestWorkingDir% +if not defined XunitTestBinBase set XunitTestBinBase=%__TestWorkingDir%\ if not defined XunitTestReportDirBase set XunitTestReportDirBase=%XunitTestBinBase%\Reports\ REM We are not running in the official build scenario, call runtest.py diff --git a/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt b/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt index f9639aa95aa7..151d42f06c3d 100644 --- a/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByOut/CMakeLists.txt +++ b/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/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt b/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt index 180d43c9676c..3176cfc826e9 100644 --- a/tests/src/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/CMakeLists.txt +++ b/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) From 281fd33259a5435f08d7d5d3d18f5eb676580bc6 Mon Sep 17 00:00:00 2001 From: Tomas Date: Tue, 12 Nov 2019 17:19:46 +0100 Subject: [PATCH 2/2] Remove CONFIG_DIR that is no longer used by gen-buildsys.sh --- build-test.sh | 2 +- build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build-test.sh b/build-test.sh index 0150b2959c7e..7d6db0dd5668 100755 --- a/build-test.sh +++ b/build-test.sh @@ -522,7 +522,7 @@ build_native_projects() extraCmakeArguments="$extraCmakeArguments -DCLR_CMAKE_ENABLE_CODE_COVERAGE=1" fi - nextCommand="CONFIG_DIR=\"$__RepoRootDir/eng/common/cross\" \"$scriptDir/gen-buildsys.sh\" \"$__TestDir\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $extraCmakeArguments $__cmakeargs" + nextCommand="\"$scriptDir/gen-buildsys.sh\" \"$__TestDir\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $extraCmakeArguments $__cmakeargs" echo "Invoking $nextCommand" eval $nextCommand diff --git a/build.sh b/build.sh index 84f2f79a8f76..635258eaec6d 100755 --- a/build.sh +++ b/build.sh @@ -231,7 +231,7 @@ build_native() extraCmakeArguments="$extraCmakeArguments -DCLR_CMAKE_ENABLE_CODE_COVERAGE=1" fi - nextCommand="CONFIG_DIR=\"$__RepoRootDir/eng/common/cross\" \"$scriptDir/gen-buildsys.sh\" \"$__ProjectRoot\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $scan_build $extraCmakeArguments $__cmakeargs" + nextCommand="\"$scriptDir/gen-buildsys.sh\" \"$__ProjectRoot\" \"$intermediatesForBuild\" $platformArch $__BuildType $generator $scan_build $extraCmakeArguments $__cmakeargs" echo "Invoking $nextCommand" eval $nextCommand