summaryrefslogtreecommitdiff
path: root/build-test.sh
diff options
context:
space:
mode:
authorRuss Keldorph <russ.keldorph@microsoft.com>2017-05-22 11:24:09 -0700
committerRuss Keldorph <russ.keldorph@microsoft.com>2017-05-22 13:30:31 -0700
commita16a8a852077b0c471cf12ef75dc5e8a41333533 (patch)
treedac36f93f17ea00ec6f704fd04c5251ef83210d0 /build-test.sh
parentc41d51e46069b3b21b8a0361688e2557586f353c (diff)
downloadcoreclr-a16a8a852077b0c471cf12ef75dc5e8a41333533.tar.gz
coreclr-a16a8a852077b0c471cf12ef75dc5e8a41333533.tar.bz2
coreclr-a16a8a852077b0c471cf12ef75dc5e8a41333533.zip
Revert "Fixed tests build on Linux"
Diffstat (limited to 'build-test.sh')
-rwxr-xr-xbuild-test.sh645
1 files changed, 0 insertions, 645 deletions
diff --git a/build-test.sh b/build-test.sh
deleted file mode 100755
index 058b9c1195..0000000000
--- a/build-test.sh
+++ /dev/null
@@ -1,645 +0,0 @@
-#!/usr/bin/env bash
-
-initHostDistroRid()
-{
- if [ "$__HostOS" == "Linux" ]; then
- if [ ! -e /etc/os-release ]; then
- echo "WARNING: Can not determine runtime id for current distro."
- __HostDistroRid=""
- else
- source /etc/os-release
- __HostDistroRid="$ID.$VERSION_ID-$__HostArch"
- fi
- fi
-}
-
-initTargetDistroRid()
-{
- if [ $__CrossBuild == 1 ]; then
- if [ "$__BuildOS" == "Linux" ]; then
- if [ ! -e $ROOTFS_DIR/etc/os-release ]; then
- echo "WARNING: Can not determine runtime id for current distro."
- export __DistroRid=""
- else
- source $ROOTFS_DIR/etc/os-release
- export __DistroRid="$ID.$VERSION_ID-$__BuildArch"
- fi
- fi
- else
- export __DistroRid="$__HostDistroRid"
- fi
-
- # Portable builds target the base RID
- if [ "$__PortableBuild" == 1 ]; then
- if [ "$__BuildOS" == "Linux" ]; then
- export __DistroRid="linux-$__BuildArch"
- elif [ "$__BuildOS" == "OSX" ]; then
- export __DistroRid="osx-$__BuildArch"
- fi
- fi
-}
-
-isMSBuildOnNETCoreSupported()
-{
- # This needs to be updated alongwith corresponding changes to netci.groovy.
- __isMSBuildOnNETCoreSupported=0
-
- if [ "$__HostArch" == "x64" ]; then
- if [ "$__HostOS" == "Linux" ]; then
- case "$__HostDistroRid" in
- "centos.7-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "debian.8-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "fedora.23-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "fedora.24-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "opensuse.42.1-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "rhel.7"*"-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "ubuntu.14.04-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "ubuntu.16.04-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "ubuntu.16.10-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- "alpine.3.4.3-x64")
- __isMSBuildOnNETCoreSupported=1
- ;;
- *)
- __isMSBuildOnNETCoreSupported=$__msbuildonunsupportedplatform
- esac
- elif [ "$__HostOS" == "OSX" ]; then
- __isMSBuildOnNETCoreSupported=1
- fi
- fi
-}
-
-build_Tests()
-{
- __TestDir=$__ProjectDir/tests
- __ProjectFilesDir=$__TestDir
- __TestBinDir=$__TestWorkingDir
-
- if [ $__RebuildTests -ne 0 ]; then
- if [ -d "${__TestBinDir}" ]; then
- echo "Removing tests build dir: ${__TestBinDir}"
- rm -rf $__TestBinDir
- fi
- fi
-
- __CMakeBinDir="${__TestBinDir}"
-
- if [ -z "$__TestIntermediateDir" ]; then
- __TestIntermediateDir="tests/obj/${__BuildOS}.${__BuildArch}.${__BuildType}"
- fi
-
- echo "__BuildOS: ${__BuildOS}"
- echo "__BuildArch: ${__BuildArch}"
- echo "__BuildType: ${__BuildType}"
- echo "__TestIntermediateDir: ${__TestIntermediateDir}"
-
- if [ ! -f "$__TestBinDir" ]; then
- echo "Creating TestBinDir: ${__TestBinDir}"
- mkdir -p $__TestBinDir
- fi
- if [ ! -f "$__LogsDir" ]; then
- echo "Creating LogsDir: ${__LogsDir}"
- mkdir -p $__LogsDir
- fi
-
- __BuildProperties="-p:OSGroup=${__BuildOS} -p:BuildOS=${__BuildOS} -p:BuildArch=${__BuildArch} -p:BuildType=${__BuildType}"
-
- # =========================================================================================
- # ===
- # === Restore product binaries from packages
- # ===
- # =========================================================================================
-
- if [ -z "$XunitTestBinBase"]; then
- XunitTestBinBase="$__TestWorkingDir"
- fi
-
- export CORE_ROOT="$XunitTestBinBase/Tests/Core_Root"
-
- if [ ! -f "${CORE_ROOT}" ]; then
- mkdir -p ${CORE_ROOT}
- else
- rm -rf ${CORE_ROOT}
- fi
-
- cp -r $__BinDir/* $CORE_ROOT/ > /dev/null
-
- # make sure the correct ilasm will be used
- export CscToolPath="${CORE_ROOT}"
-
- build_Tests_internal "Restore_Product" "${__ProjectDir}/tests/build.proj" " -BatchRestorePackages" "Restore product binaries (build tests)"
-
- build_Tests_internal "Tests_GenerateRuntimeLayout" "${__ProjectDir}/tests/runtest.proj" "-BinPlaceRef -BinPlaceProduct -CopyCrossgenToProduct" "Restore product binaries (run tests)"
-
- if [ -n "$__UpdateInvalidPackagesArg" ]; then
- __up=-updateinvalidpackageversion
- fi
-
- # Work hardcoded path around
- if [ ! -f "${__BuildToolsDir}/Microsoft.CSharp.Core.Targets" ]; then
- ln -s "${__BuildToolsDir}/Microsoft.CSharp.Core.targets" "${__BuildToolsDir}/Microsoft.CSharp.Core.Targets"
- fi
- if [ ! -f "${__BuildToolsDir}/Microsoft.CSharp.targets" ]; then
- ln -s "${__BuildToolsDir}/Microsoft.CSharp.Targets" "${__BuildToolsDir}/Microsoft.CSharp.targets"
- fi
-
- 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)"
-
- 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
- else
- echo "Managed Tests had been built before."
- fi
-
- if [ $__BuildTestWrappers -ne -0 ]; then
- echo "${__MsgPrefix}Creating test wrappers..."
-
- __XUnitWrapperBuiltMarker=${__TestBinDir}/xunit_wrapper_build
-
- if [ ! -f $__XUnitWrapperBuiltMarker ]; then
-
- build_Tests_internal "Tests_XunitWrapper" "$__ProjectDir/tests/runtest.proj" "-BuildWrappers -MsBuildEventLogging=\" \" " "Test Xunit Wrapper"
-
- if [ $? -ne 0 ]; then
- echo "${__MsgPrefix}Error: build failed. Refer to the build log files for details (above)"
- exit 1
- else
- echo "XUnit Wrappers have been built."
- echo "Create marker \"${__XUnitWrapperBuiltMarker}\""
- touch $__XUnitWrapperBuiltMarker
- fi
- else
- echo "XUnit Wrappers had been built before."
- fi
- fi
-
- echo "${__MsgPrefix}Creating test overlay..."
-
- build_Tests_internal "Tests_Overlay_Managed" "$__ProjectDir/tests/runtest.proj" "-testOverlay" "Creating test overlay"
-
- if [ $__ZipTests -ne 0 ]; then
- echo "${__MsgPrefix}ZIP tests packages..."
- build_Tests_internal "Helix_Prep" "$__ProjectDir/tests/helixprep.proj" " " "Prep test binaries for Helix publishing"
- fi
-}
-
-build_Tests_internal()
-{
- subDirectoryName=$1
- projectName=$2
- extraBuildParameters=$3
- stepName="$4"
-
- # Set up directories and file names
- __BuildLogRootName=$subDirectoryName
- __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} $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
-}
-
-usage()
-{
- echo "Usage: $0 [BuildArch] [BuildType] [verbose] [coverage] [cross] [clangx.y] [ninja] [runtests] [bindir]"
- echo "BuildArch can be: x64, x86, arm, armel, arm64"
- 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 "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,"
- echo " - will use CAC_ROOTFS_DIR environment variable if set."
- echo "portableLinux - build for Portable Linux Distribution"
- echo "verbose - optional argument to enable verbose build output."
- echo "rebuild - if tests have already been built - rebuild them"
- echo "runtests - run tests after building them"
- 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."
- exit 1
-}
-
-
-# Obtain the location of the bash script to figure out where the root of the repo is.
-__ProjectRoot="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
-# $__ProjectRoot/build.sh $1 $2
-
-# Use uname to determine what the CPU is.
-CPUName=$(uname -p)
-
-# Some Linux platforms report unknown for platform, but the arch for machine.
-if [ "$CPUName" == "unknown" ]; then
- CPUName=$(uname -m)
-fi
-
-case $CPUName in
- i686)
- echo "Unsupported CPU $CPUName detected, build might not succeed!"
- __BuildArch=x86
- __HostArch=x86
- ;;
-
- x86_64)
- __BuildArch=x64
- __HostArch=x64
- ;;
-
- armv7l)
- echo "Unsupported CPU $CPUName detected, build might not succeed!"
- __BuildArch=arm
- __HostArch=arm
- ;;
-
- aarch64)
- __BuildArch=arm64
- __HostArch=arm64
- ;;
-
- *)
- echo "Unknown CPU $CPUName detected, configuring as if for x64"
- __BuildArch=x64
- __HostArch=x64
- ;;
-esac
-
-# Use uname to determine what the OS is.
-OSName=$(uname -s)
-case $OSName in
- Linux)
- __BuildOS=Linux
- __HostOS=Linux
- ;;
-
- Darwin)
- __BuildOS=OSX
- __HostOS=OSX
- ;;
-
- FreeBSD)
- __BuildOS=FreeBSD
- __HostOS=FreeBSD
- ;;
-
- OpenBSD)
- __BuildOS=OpenBSD
- __HostOS=OpenBSD
- ;;
-
- NetBSD)
- __BuildOS=NetBSD
- __HostOS=NetBSD
- ;;
-
- SunOS)
- __BuildOS=SunOS
- __HostOS=SunOS
- ;;
-
- *)
- echo "Unsupported OS $OSName detected, configuring as if for Linux"
- __BuildOS=Linux
- __HostOS=Linux
- ;;
-esac
-
-__BuildType=Debug
-__CodeCoverage=
-__IncludeTests=INCLUDE_TESTS
-
-# Set the various build properties here so that CMake and MSBuild can pick them up
-export __ProjectDir="$__ProjectRoot"
-__SourceDir="$__ProjectDir/src"
-__PackagesDir="$__ProjectDir/packages"
-__RootBinDir="$__ProjectDir/bin"
-__BuildToolsDir="$__ProjectDir/Tools"
-__UnprocessedBuildArgs=
-__RunArgs=
-__MSBCleanBuildArgs=
-__UseNinja=0
-__VerboseBuild=0
-__SkipRestore=""
-__CrossBuild=0
-__ClangMajorVersion=0
-__ClangMinorVersion=0
-__NuGetPath="$__PackagesDir/NuGet.exe"
-__HostDistroRid=""
-__DistroRid=""
-__cmakeargs=""
-__PortableLinux=0
-__msbuildonunsupportedplatform=0
-__ZipTests=0
-__NativeTestIntermediatesDir=
-__RunTests=0
-__RebuildTests=0
-__BuildTestWrappers=0
-CORE_ROOT=
-
-
-while :; do
- if [ $# -le 0 ]; then
- break
- fi
-
- lowerI="$(echo $1 | awk '{print tolower($0)}')"
- case $lowerI in
- -\?|-h|--help)
- usage
- exit 1
- ;;
-
- x86)
- __BuildArch=x86
- ;;
-
- x64)
- __BuildArch=x64
- ;;
-
- arm)
- __BuildArch=arm
- ;;
-
- armel)
- __BuildArch=armel
- ;;
-
- arm64)
- __BuildArch=arm64
- ;;
-
- debug)
- __BuildType=Debug
- ;;
-
- checked)
- __BuildType=Checked
- ;;
-
- release)
- __BuildType=Release
- ;;
-
- coverage)
- __CodeCoverage=Coverage
- ;;
-
- cross)
- __CrossBuild=1
- ;;
-
- portablelinux)
- if [ "$__BuildOS" == "Linux" ]; then
- __PortableLinux=1
- else
- echo "ERROR: portableLinux not supported for non-Linux platforms."
- exit 1
- fi
- ;;
-
- verbose)
- __VerboseBuild=1
- ;;
-
- clang3.5)
- __ClangMajorVersion=3
- __ClangMinorVersion=5
- ;;
-
- clang3.6)
- __ClangMajorVersion=3
- __ClangMinorVersion=6
- ;;
-
- clang3.7)
- __ClangMajorVersion=3
- __ClangMinorVersion=7
- ;;
-
- clang3.8)
- __ClangMajorVersion=3
- __ClangMinorVersion=8
- ;;
-
- clang3.9)
- __ClangMajorVersion=3
- __ClangMinorVersion=9
- ;;
-
- ninja)
- __UseNinja=1
- ;;
-
- runtests)
- __RunTests=1
- ;;
-
- rebuild)
- __RebuildTests=1
- ;;
-
- ziptests)
- __ZipTests=1
- ;;
-
- bindir)
- if [ -n "$2" ]; then
- __RootBinDir="$2"
- if [ ! -d $__RootBinDir ]; then
- mkdir $__RootBinDir
- fi
- __RootBinParent=$(dirname $__RootBinDir)
- __RootBinName=${__RootBinDir##*/}
- __RootBinDir="$(cd $__RootBinParent &>/dev/null && printf %s/%s $PWD $__RootBinName)"
- shift
- else
- echo "ERROR: 'bindir' requires a non-empty option argument"
- exit 1
- fi
- ;;
-
- msbuildonunsupportedplatform)
- __msbuildonunsupportedplatform=1
- ;;
- *)
- __UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
- ;;
- esac
-
- shift
-done
-
-
-__RunArgs="-BuildArch=$__BuildArch -BuildType=$__BuildType -BuildOS=$__BuildOS"
-
-# Configure environment if we are doing a verbose build
-if [ $__VerboseBuild == 1 ]; then
- export VERBOSE=1
- __RunArgs="$__RunArgs -verbose"
-fi
-
-# Set default clang version
-if [[ $__ClangMajorVersion == 0 && $__ClangMinorVersion == 0 ]]; then
- if [ $__CrossBuild == 1 ]; then
- __ClangMajorVersion=3
- __ClangMinorVersion=6
- else
- __ClangMajorVersion=3
- __ClangMinorVersion=5
- fi
-fi
-
-
-# Set dependent variables
-__LogsDir="$__RootBinDir/Logs"
-
-# init the host distro name
-initHostDistroRid
-
-# Set the remaining variables based upon the determined build configuration
-__BinDir="$__RootBinDir/Product/$__BuildOS.$__BuildArch.$__BuildType"
-__PackagesBinDir="$__BinDir/.nuget"
-__ToolsDir="$__RootBinDir/tools"
-__TestDir="$__ProjectDir/tests"
-__TestWorkingDir="$__RootBinDir/tests/$__BuildOS.$__BuildArch.$__BuildType"
-__IntermediatesDir="$__RootBinDir/obj/$__BuildOS.$__BuildArch.$__BuildType"
-__TestIntermediatesDir="$__RootBinDir/tests/obj/$__BuildOS.$__BuildArch.$__BuildType"
-__isMSBuildOnNETCoreSupported=0
-__CrossComponentBinDir="$__BinDir"
-__CrossCompIntermediatesDir="$__IntermediatesDir/crossgen"
-
-__CrossArch="$__HostArch"
-if [[ "$__HostArch" == "x64" && "$__BuildArch" == "arm" ]]; then
- __CrossArch="x86"
-fi
-if [ $__CrossBuild == 1 ]; then
- __CrossComponentBinDir="$__CrossComponentBinDir/$__CrossArch"
-fi
-__CrossgenCoreLibLog="$__LogsDir/CrossgenCoreLib_$__BuildOS.$BuildArch.$__BuildType.log"
-__CrossgenExe="$__CrossComponentBinDir/crossgen"
-
-isMSBuildOnNETCoreSupported
-
-# CI_SPECIFIC - On CI machines, $HOME may not be set. In such a case, create a subfolder and set the variable to set.
-# This is needed by CLI to function.
-if [ -z "$HOME" ]; then
- if [ ! -d "$__ProjectDir/temp_home" ]; then
- mkdir temp_home
- fi
- export HOME=$__ProjectDir/temp_home
- echo "HOME not defined; setting it to $HOME"
-fi
-
-# Specify path to be set for CMAKE_INSTALL_PREFIX.
-# This is where all built CoreClr libraries will copied to.
-export __CMakeBinDir="$__BinDir"
-
-if [ ! -d "$__BinDir" ] || [ ! -d "$__BinDir/bin" ]; then
-
- echo "Has not been found built CoreCLR instance"
- echo "Please build it before tests using './build.sh $__BuildArch $__BuildType'"
- exit 1
-fi
-
-# Configure environment if we are doing a cross compile.
-if [ $__CrossBuild == 1 ]; then
- export CROSSCOMPILE=1
- if ! [[ -n "$ROOTFS_DIR" ]]; then
- export ROOTFS_DIR="$__ProjectRoot/cross/rootfs/$__BuildArch"
- fi
-fi
-
-# init the target distro name
-initTargetDistroRid
-
-# Override tool directory
-
-__CoreClrVersion=1.1.0
-__sharedFxDir=$__BuildToolsDir/dotnetcli/shared/Microsoft.NETCore.App/$__CoreClrVersion/
-
-echo "Building Tests..."
-
-build_Tests
-
-if [ $? -ne 0 ]; then
- echo "Failed to build tests"
- exit 1
-fi
-
-echo "${__MsgPrefix}Test build successful."
-echo "${__MsgPrefix}Test binaries are available at ${__TestBinDir}"
-
-__testNativeBinDir=$__IntermediatesDir/tests
-
-if [ $__RunTests -ne 0 ]; then
-
- echo "Run Tests..."
-
- echo "${__TestDir}/runtest.sh --testRootDir=$__TestBinDir --coreClrBinDir=$__BinDir --coreFxBinDir=$__sharedFxDir --testNativeBinDir=$__testNativeBinDir"
-
- $__TestDir/runtest.sh --testRootDir=$__TestBinDir --coreClrBinDir=$__BinDir --coreFxBinDir=$CORE_ROOT --testNativeBinDir=$__testNativeBinDir
-
- echo "Tests run successful."
-else
- echo "To run all tests use 'tests/runtests.sh' where:"
- echo " testRootDir = $__TestBinDir"
- echo " coreClrBinDir = $__BinDir"
- echo " coreFxBinDir = $CORE_ROOT"
- echo " testNativeBinDir = $__testNativeBinDir"
- echo " -------------------------------------------------- "
- echo "To run single test use the following command:"
- echo " bash ${__TestBinDir}/__TEST_PATH__/__TEST_NAME__.sh -coreroot=${CORE_ROOT}"
-fi
-