X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=build-test.sh;h=5339dc1116c73c695b3cbcfd42a6e1990ec02d4c;hb=ed65cca4838f23617c359ba83098e0ed5bad8a8f;hp=2ccc3b663a4a494eb505ba328d3e69e4750c419e;hpb=71aafbff34ba2d9b58dfc5e580dca7a0a6f7d92b;p=platform%2Fupstream%2Fcoreclr.git diff --git a/build-test.sh b/build-test.sh index 2ccc3b6..5339dc1 100755 --- a/build-test.sh +++ b/build-test.sh @@ -20,14 +20,12 @@ initHostDistroRid() elif [ -e /etc/os-release ]; then source /etc/os-release if [[ $ID == "alpine" ]]; then - # remove the last version digit - VERSION_ID=${VERSION_ID%.*} + __HostDistroRid="linux-musl-$__HostArch" else __PortableBuild=1 + __HostDistroRid="$ID.$VERSION_ID-$__HostArch" fi - - __HostDistroRid="$ID.$VERSION_ID-$__HostArch" - fi + fi elif [ "$__HostOS" == "FreeBSD" ]; then __freebsd_version=`sysctl -n kern.osrelease | cut -f1 -d'.'` __HostDistroRid="freebsd.$__freebsd_version-$__HostArch" @@ -240,22 +238,13 @@ build_Tests() echo "Starting the Managed Tests Build..." - __ManagedTestBuiltMarker=${__TestBinDir}/managed_test_build - - if [ ! -f $__ManagedTestBuiltMarker ]; then + build_Tests_internal "Tests_Managed" "$__ProjectDir/tests/build.proj" "$__up" "Managed tests build (build tests)" - build_Tests_internal "Tests_Managed" "$__ProjectDir/tests/build.proj" "$__up" "Managed tests build (build tests)" - - if [ $? -ne 0 ]; then - echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)" - exit 1 - else - echo "Tests have been built." - echo "Create marker \"${__ManagedTestBuiltMarker}\"" - touch $__ManagedTestBuiltMarker - fi + if [ $? -ne 0 ]; then + echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)" + exit 1 else - echo "Managed Tests had been built before." + echo "Managed tests build success!" fi if [ $__BuildTestWrappers -ne -0 ]; then @@ -306,28 +295,75 @@ build_Tests_internal() __BuildLog="$__LogsDir/${__BuildLogRootName}.${__BuildOS}.${__BuildArch}.${__BuildType}.log" __BuildWrn="$__LogsDir/${__BuildLogRootName}.${__BuildOS}.${__BuildArch}.${__BuildType}.wrn" __BuildErr="$__LogsDir/${__BuildLogRootName}.${__BuildOS}.${__BuildArch}.${__BuildType}.err" - __msbuildLog="\"/flp:Verbosity=normal;LogFile=${__BuildLog}\"" - __msbuildWrn="\"/flp1:WarningsOnly;LogFile=${__BuildWrn}\"" - __msbuildErr="\"/flp2:ErrorsOnly;LogFile=${__BuildErr}\"" - # Generate build command - buildCommand="$__ProjectRoot/run.sh build -Project=$projectName -MsBuildLog=${__msbuildLog} -MsBuildWrn=${__msbuildWrn} -MsBuildErr=${__msbuildErr} -MsBuildEventLogging=\"/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log\" $extraBuildParameters $__RunArgs $__UnprocessedBuildArgs" + if [[ "$subDirectoryName" == "Tests_Managed" ]]; then + # Execute msbuild managed test build in stages - workaround for excessive data retention in MSBuild ConfigCache + # See https://github.com/Microsoft/msbuild/issues/2993 - echo "Building step '$stepName' via $buildCommand" + # __SkipPackageRestore and __SkipTargetingPackBuild used to control build by tests/src/dirs.proj + export __SkipPackageRestore=false + export __SkipTargetingPackBuild=false + export __BuildLoopCount=2 + export __TestGroupToBuild=1 + __AppendToLog=false - # Invoke MSBuild - eval $buildCommand + if [ -n __priority1 ]; then + export __BuildLoopCount=16 + export __TestGroupToBuild=2 + fi - # Invoke MSBuild - # $__ProjectRoot/run.sh build -Project=$projectName -MsBuildLog="$__msbuildLog" -MsBuildWrn="$__msbuildWrn" -MsBuildErr="$__msbuildErr" $extraBuildParameters $__RunArgs $__UnprocessedBuildArgs + for (( slice=1 ; slice <= __BuildLoopCount; slice = slice + 1 )) + do + __msbuildLog="\"/flp:Verbosity=normal;LogFile=${__BuildLog};Append=${__AppendToLog}\"" + __msbuildWrn="\"/flp1:WarningsOnly;LogFile=${__BuildWrn};Append=${__AppendToLog}\"" + __msbuildErr="\"/flp2:ErrorsOnly;LogFile=${__BuildErr};Append=${__AppendToLog}\"" - # Make sure everything is OK - if [ $? -ne 0 ]; then - echo "${__MsgPrefix}Failed to build $stepName. See the build logs:" - echo " $__BuildLog" - echo " $__BuildWrn" - echo " $__BuildErr" - exit 1 + export TestBuildSlice=$slice + + # Generate build command + buildCommand="$__ProjectRoot/run.sh build -Project=$projectName -MsBuildLog=${__msbuildLog} -MsBuildWrn=${__msbuildWrn} -MsBuildErr=${__msbuildErr} -MsBuildEventLogging=\"/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log\" $extraBuildParameters $__RunArgs $__UnprocessedBuildArgs" + + echo "Building step '$stepName' slice=$slice via $buildCommand" + + # Invoke MSBuild + eval $buildCommand + + # Make sure everything is OK + if [ $? -ne 0 ]; then + echo "${__MsgPrefix}Failed to build $stepName. See the build logs:" + echo " $__BuildLog" + echo " $__BuildWrn" + echo " $__BuildErr" + exit 1 + fi + export __SkipPackageRestore=true + export __SkipTargetingPackBuild=true + __AppendToLog=true + done + else + __msbuildLog="\"/flp:Verbosity=normal;LogFile=${__BuildLog}\"" + __msbuildWrn="\"/flp1:WarningsOnly;LogFile=${__BuildWrn}\"" + __msbuildErr="\"/flp2:ErrorsOnly;LogFile=${__BuildErr}\"" + + # Generate build command + buildCommand="$__ProjectRoot/run.sh build -Project=$projectName -MsBuildLog=${__msbuildLog} -MsBuildWrn=${__msbuildWrn} -MsBuildErr=${__msbuildErr} -MsBuildEventLogging=\"/l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log\" $extraBuildParameters $__RunArgs $__UnprocessedBuildArgs" + + echo "Building step '$stepName' via $buildCommand" + + # Invoke MSBuild + eval $buildCommand + + # Invoke MSBuild + # $__ProjectRoot/run.sh build -Project=$projectName -MsBuildLog="$__msbuildLog" -MsBuildWrn="$__msbuildWrn" -MsBuildErr="$__msbuildErr" $extraBuildParameters $__RunArgs $__UnprocessedBuildArgs + + # Make sure everything is OK + if [ $? -ne 0 ]; then + echo "${__MsgPrefix}Failed to build $stepName. See the build logs:" + echo " $__BuildLog" + echo " $__BuildWrn" + echo " $__BuildErr" + exit 1 + fi fi } @@ -338,7 +374,7 @@ usage() echo "BuildType can be: debug, checked, release" echo "coverage - optional argument to enable code coverage build (currently supported only for Linux and OSX)." echo "ninja - target ninja instead of GNU make" - echo "clangx.y - optional argument to build using clang version x.y." + echo "clangx.y - optional argument to build using clang version x.y - supported version 3.5 - 6.0" echo "cross - optional argument to signify cross compilation," echo " - will use ROOTFS_DIR environment variable if set." echo "crosscomponent - optional argument to build cross-architecture component," @@ -353,6 +389,7 @@ usage() echo "ziptests - zips CoreCLR tests & Core_Root for a Helix run" echo "bindir - output directory (defaults to $__ProjectRoot/bin)" echo "msbuildonunsupportedplatform - build managed binaries even if distro is not officially supported." + echo "priority1 - include priority=1 tests in the build" exit 1 } @@ -472,6 +509,7 @@ __RunTests=0 __RebuildTests=0 __BuildTestWrappers=0 __GenerateLayoutOnly= +__priority1= CORE_ROOT= while :; do @@ -543,31 +581,46 @@ while :; do __VerboseBuild=1 ;; - clang3.5) + clang3.5|-clang3.5) __ClangMajorVersion=3 __ClangMinorVersion=5 ;; - clang3.6) + clang3.6|-clang3.6) __ClangMajorVersion=3 __ClangMinorVersion=6 ;; - clang3.7) + clang3.7|-clang3.7) __ClangMajorVersion=3 __ClangMinorVersion=7 ;; - clang3.8) + clang3.8|-clang3.8) __ClangMajorVersion=3 __ClangMinorVersion=8 ;; - clang3.9) + clang3.9|-clang3.9) __ClangMajorVersion=3 __ClangMinorVersion=9 ;; + clang4.0|-clang4.0) + __ClangMajorVersion=4 + __ClangMinorVersion=0 + ;; + + clang5.0|-clang5.0) + __ClangMajorVersion=5 + __ClangMinorVersion=0 + ;; + + clang6.0|-clang6.0) + __ClangMajorVersion=6 + __ClangMinorVersion=0 + ;; + ninja) __UseNinja=1 ;; @@ -611,6 +664,10 @@ while :; do msbuildonunsupportedplatform) __msbuildonunsupportedplatform=1 ;; + priority1) + __priority1=1 + __UnprocessedBuildArgs="$__UnprocessedBuildArgs -priority=1" + ;; *) __UnprocessedBuildArgs="$__UnprocessedBuildArgs $1" ;; @@ -686,9 +743,9 @@ export __CMakeBinDir="$__BinDir" if [ ! -d "$__BinDir" ] || [ ! -d "$__BinDir/bin" ]; then - echo "Cannot find build directory for the CoreCLR Product." - echo "Please make sure CoreCLR is built before building tests." - echo "Example use: './build.sh $__BuildArch $__BuildType'" + echo "Cannot find build directory for the CoreCLR Product or native tests." + echo "Please make sure CoreCLR and native tests are built before building managed tests." + echo "Example use: './build.sh $__BuildArch $__BuildType' without -skiptests switch" exit 1 fi