Test build fixes for Linux
authorRoman Artemev <rartemev@microsoft.com>
Wed, 8 Mar 2017 23:37:31 +0000 (15:37 -0800)
committerRoman Artemev <rartemev@microsoft.com>
Fri, 19 May 2017 22:58:24 +0000 (15:58 -0700)
33 files changed:
build-test.sh [new file with mode: 0755]
build.sh
dependencies.props
dir.props
init-tools.sh
src/build.proj
tests/build.proj
tests/dir.props
tests/helixperftasks.targets
tests/helixprep.proj
tests/helixpublish.proj
tests/override.targets
tests/runtest.proj
tests/src/CLRTest.Execute.Bash.targets
tests/src/CLRTest.Execute.targets
tests/src/CLRTest.Jit.targets
tests/src/GC/LargeMemory/API/gc/memcheck.csproj
tests/src/GC/LargeMemory/Allocation/memcheck.csproj
tests/src/IL.targets
tests/src/JIT/Directed/FaultHandlers/Simple/Simple.ilproj
tests/src/JIT/Directed/IL/PInvokeTail/TailWinApi.ilproj
tests/src/JIT/Directed/IL/Tailcall/JitTailcall2.ilproj
tests/src/JIT/Methodical/localloc/zeroinit/zeroInit01_large.ilproj
tests/src/JIT/Regression/CLR-x86-JIT/V1-M10/b04345/B04345.ilproj
tests/src/JIT/jit64/localloc/zeroinit/zeroInit01_small.ilproj
tests/src/JIT/opt/Devirtualization/GitHub_9945.csproj
tests/src/JIT/opt/Devirtualization/comparable.csproj
tests/src/NuGet.Config
tests/src/dir.common.props
tests/src/dir.props
tests/src/dir.targets
tests/src/dirs.proj
tests/testsFailingOutsideWindows.txt

diff --git a/build-test.sh b/build-test.sh
new file mode 100755 (executable)
index 0000000..058b9c1
--- /dev/null
@@ -0,0 +1,645 @@
+#!/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
+
index 39e96dd..e280125 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -278,7 +278,7 @@ build_native()
         pushd "$intermediatesForBuild"
         # Regenerate the CMake solution
         echo "Invoking \"$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh\" \"$__ProjectRoot\" $__ClangMajorVersion $__ClangMinorVersion $platformArch $__BuildType $__CodeCoverage $__IncludeTests $generator $extraCmakeArguments $__cmakeargs"
-        "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion $__ClangMinorVersion $platformArch $__BuildType $__CodeCoverage $__IncludeTests $generator "$extraCmakeArguments" "$__cmakeargs"
+        "$__ProjectRoot/src/pal/tools/gen-buildsys-clang.sh" "$__ProjectRoot" $__ClangMajorVersion $__ClangMinorVersion $platformArch $__BuildType $__CodeCoverage "$__IncludeTests" $generator "$extraCmakeArguments" "$__cmakeargs"
         popd
     fi
 
@@ -338,7 +338,6 @@ build_cross_arch_component()
     
     export __CMakeBinDir="$__CrossComponentBinDir"
     export CROSSCOMPONENT=1
-    __IncludeTests=
 
     if [ $CROSSCOMPILE == 1 ]; then
         TARGET_ROOTFS="$ROOTFS_DIR"
@@ -587,7 +586,7 @@ esac
 
 __BuildType=Debug
 __CodeCoverage=
-__IncludeTests=Include_Tests
+__IncludeTests=INCLUDE_TESTS
 
 # Set the various build properties here so that CMake and MSBuild can pick them up
 __ProjectDir="$__ProjectRoot"
index 1da0a32..d3df2d6 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- Source of truth for dependency tooling: the commit hash of the dotnet/versions master branch as of the last auto-upgrade. -->
   <PropertyGroup>
index cac0ace..9bbd89f 100644 (file)
--- a/dir.props
+++ b/dir.props
      as well as runnning the build on mono. Until we can get these sorted out we will continue using the .NET 4.5 version of the tasks.
      -->
   <PropertyGroup>
-    <BuildToolsTargets45>true</BuildToolsTargets45>
+    <RunningOnCore>false</RunningOnCore>
+    <RunningOnCore Condition="'$(MSBuildRuntimeType)' == 'Core'">true</RunningOnCore>
+    <BuildToolsTargetsDesktop>false</BuildToolsTargetsDesktop>
+    <BuildToolsTargetsDesktop Condition="'$(RunningOnCore)' != 'true'">true</BuildToolsTargetsDesktop>
+    <BuildToolsTargets45>$(BuildToolsTargetsDesktop)</BuildToolsTargets45>
   </PropertyGroup>
 
   <!-- Common properties -->
@@ -42,7 +46,7 @@
     <BuildType Condition="'$(__BuildType)' == 'checked'">Checked</BuildType>
 
     <BuildOS>$(__BuildOS)</BuildOS>
-    <BuildOS Condition="'$(__BuildOS)' == ''">Windows_NT</BuildOS>
+    <BuildOS Condition="'$(__BuildOS)' == ''">AnyOS</BuildOS>
 
     <ProjectDir>$(__ProjectDir)\</ProjectDir>
     <ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</ProjectDir>
@@ -68,8 +72,8 @@
     <PackagesBinDir>$(__PackagesBinDir)</PackagesBinDir>
     <PackagesBinDir Condition="'$(__PackagesBinDir)'==''">$(BinDir).nuget\</PackagesBinDir>
 
-    <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools/</ToolsDir>
-    <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath>
+    <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools\</ToolsDir>
+    <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli\</DotnetCliPath>
     <OverrideToolHost>$(DotnetCliPath)dotnet</OverrideToolHost>
     <BuildToolsSemaphore Condition="'$(BuildToolsSemaphore)' == ''">$(ToolsDir)Microsoft.DotNet.Build.Tasks.dll</BuildToolsSemaphore>
 
index b676ba1..c076212 100755 (executable)
@@ -16,7 +16,8 @@ __INIT_TOOLS_DONE_MARKER=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/done
 
 if [ -z "$__DOTNET_PKG" ]; then
     if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then
-        echo "Warning: build not supported on 32 bit Unix"
+        echo "Error: build not supported on 32 bit Unix"
+        exit 1
     fi
 OSName=$(uname -s)
     case $OSName in
index 7962d27..efe3554 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="..\dir.props"/>
   
index 066f2a2..7897a3f 100644 (file)
 
   <Target Name="BuildTargetingPack" AfterTargets="BatchRestorePackages">
     <Message Text="Building Targeting Pack" Importance="High" />
+    <Error  Text="BuildOS has not been specified. Please do that then run build again."  Condition="'$(BuildOS)' == 'AnyOS'" />
     <MSBuild Projects="$(MSBuildThisFileDirectory)\src\Common\external\external.depproj" />
   </Target>
 
   <Target Name="BatchRestorePackages" DependsOnTargets="VerifyDependencies">
     <Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Restoring all packages..." />
-    
+
     <!-- restore all csproj's with PackageReferences in one pass -->
     <MSBuild Projects="build.proj"
              Properties="RestoreProj=%(RestoreProjects.Identity)"
index e98b303..b684cb6 100644 (file)
@@ -1,9 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
   <!--
     $(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
   -->
   <PropertyGroup>
+    <OsEnvironment Condition="'$(OsEnvironment)'=='' and '$(OS)'=='OSX'">Unix</OsEnvironment>
     <OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
   </PropertyGroup>
   
   <!--   
     Switching to the .NET Core version of the BuildTools tasks seems to break numerous scenarios, such as VS intellisense and resource designer   
     as well as runnning the build on mono. Until we can get these sorted out we will continue using the .NET 4.6 version of the tasks.   
-   -->   
-  <PropertyGroup>  
-    <BuildToolsTargets45>true</BuildToolsTargets45>   
-  </PropertyGroup>  
+     -->
+  <PropertyGroup>
+    <RunningOnCore>false</RunningOnCore>
+    <RunningOnCore Condition="'$(MSBuildRuntimeType)' == 'Core'">true</RunningOnCore>
+    <BuildToolsTargetsDesktop>false</BuildToolsTargetsDesktop>
+    <BuildToolsTargetsDesktop Condition="'$(RunningOnCore)' != 'true'">true</BuildToolsTargetsDesktop>
+    <BuildToolsTargets45>$(BuildToolsTargetsDesktop)</BuildToolsTargets45>
+    <RunningOnUnix Condition="('$(RunningOnUnix)' == '') And ('$(MSBuildRuntimeType)' == 'Core')">true</RunningOnUnix>
+  </PropertyGroup>
 
   <!-- Common repo directories -->
   <PropertyGroup>
     <SourceDir>$(ProjectDir)src\</SourceDir>
     <PackagesDir>$(ProjectDir)..\packages\</PackagesDir>
     <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)..\Tools\</ToolsDir>
-    <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath>
-    <BuildToolsTaskDir Condition="'$(BuildToolsTargets45)' == 'true'">$(ToolsDir)net46/</BuildToolsTaskDir>
+    <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli\</DotnetCliPath>
+    <BuildToolsTaskDir Condition="'$(BuildToolsTargets45)' == 'true'">$(ToolsDir)net46\</BuildToolsTaskDir>
+    <OverrideToolHost Condition="'$(OS)' != 'Windows_NT'">$(DotnetCliPath)dotnet</OverrideToolHost>
+    <CSharpCoreTargetsPath Condition="'$(BuildToolsTargetsDesktop)' != 'true'">$(ToolsDir)\Microsoft.CSharp.Core.targets</CSharpCoreTargetsPath>
+    <!-- We don't use any of MSBuild's resolution logic for resolving the framework, so just set these two properties to any folder that exists to skip
+         the GenerateReferenceAssemblyPaths task (not target) and to prevent it from outputting a warning (MSB3644). -->
+    <_TargetFrameworkDirectories Condition="'$(BuildToolsTargetsDesktop)' != 'true'">$(MSBuildThisFileDirectory)/Documentation</_TargetFrameworkDirectories>
+    <_FullFrameworkReferenceAssemblyPaths Condition="'$(BuildToolsTargetsDesktop)' != 'true'">$(MSBuildThisFileDirectory)/Documentation</_FullFrameworkReferenceAssemblyPaths>
+    <ExcludeSigningImport>true</ExcludeSigningImport>
     <SkipImportILTargets>true</SkipImportILTargets>
   </PropertyGroup>
 
   <PropertyGroup>
     <RootBinDir>$(__RootBinDir)\</RootBinDir>
     <RootBinDir Condition="'$(__RootBinDir)'==''">$(ProjectDir)..\bin\</RootBinDir>
+
+    <BinDir>$(__BinDir)\</BinDir>
+    <BinDir Condition="'$(__BinDir)'==''">$(RootBinDir)Product\$(BuildOS).$(BuildArch).$(BuildType)\</BinDir>
+
   </PropertyGroup>
 
 <!-- Default Test platform to deploy the netstandard compiled tests to -->
index d578360..3131968 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
     <UsingTask TaskName="RemoveDuplicateAssemblies" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" >
index 2d08e91..f14879b 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="ArchiveAll" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
   <UsingTask TaskName="ZipFileCreateFromDirectory" AssemblyFile="$(ToolsDir)\net46\Microsoft.DotNet.Build.Tasks.dll"/>
index fd9713e..a68f1f7 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="..\dir.props" />
   <!-- CoreClr-Specific Helix test submission project. -->
index 0e7f82b..483c837 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!--
     Overrides for all other targets (including build tools) can go in this file.
index 2a797bc..1131d79 100644 (file)
@@ -78,12 +78,12 @@ $(_XunitEpilog)
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
     <OutputType>Library</OutputType>
-    <TargetFrameworkIdentifier Condition ="'$(BuildTestsAgainstPackages)' != 'true'">.NETFramework</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion Condition ="'$(BuildTestsAgainstPackages)' != 'true'">v4.5</TargetFrameworkVersion>
+    <TargetFrameworkIdentifier Condition ="('$(BuildTestsAgainstPackages)' != 'true') And ('$(BuildOS)' == 'Windows_NT')">.NETFramework</TargetFrameworkIdentifier>
+    <TargetFrameworkVersion Condition ="('$(BuildTestsAgainstPackages)' != 'true') And ('$(BuildOS)' == 'Windows_NT')">v4.5</TargetFrameworkVersion>
     <NugetTargetMonikerShort Condition ="'$(BuildTestsAgainstPackages)' != 'true'">net45</NugetTargetMonikerShort>
     <IsXunitWrapperProject>true</IsXunitWrapperProject>
     <SkipSigning>true</SkipSigning>
-    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB}%3B{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <SolutionDir Condition="%24(SolutionDir) == '' Or %24(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
     <CLRTestKind>BuildOnly</CLRTestKind>
     <IsTestProject>true</IsTestProject>
@@ -100,11 +100,11 @@ $(_XunitEpilog)
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
   </ItemGroup>
    <ItemGroup>
-    <ProjectReference Include="$(SourceDir)Common\Desktop.Coreclr.TestWrapper\Desktop.Coreclr.TestWrapper.csproj" Condition="'$(BuildTestsAgainstPackages)' != 'true'">
+    <ProjectReference Include="$(SourceDir)Common\Desktop.Coreclr.TestWrapper\Desktop.Coreclr.TestWrapper.csproj" Condition="('$(BuildTestsAgainstPackages)' != 'true') And ('$(BuildOS)' == 'Windows_NT')">
       <Project>{8ffe99c0-22f8-4462-b839-970eac1b3472}</Project>
       <Name>coreclr</Name>
     </ProjectReference>
-    <ProjectReference Include="$(SourceDir)Common\Coreclr.TestWrapper\Coreclr.TestWrapper.csproj" Condition="'$(BuildTestsAgainstPackages)' == 'true'">
+    <ProjectReference Include="$(SourceDir)Common\Coreclr.TestWrapper\Coreclr.TestWrapper.csproj" Condition="('$(BuildTestsAgainstPackages)' == 'true') Or ('$(BuildOS)' != 'Windows_NT')">
       <Project>{8ffe99c0-22f8-4462-b839-970eac1b3472}</Project>
       <Name>coreclr</Name>
     </ProjectReference>
@@ -152,8 +152,10 @@ $(_XunitEpilog)
     <PropertyGroup>
       <_CMDDIR_Parent>$([System.IO.Path]::GetDirectoryName($(_CMDDIR)))</_CMDDIR_Parent>
       <_CMDDIR_Grandparent>$([System.IO.Path]::GetDirectoryName($(_CMDDIR_Parent)))</_CMDDIR_Grandparent>
-      <CategoryWithSlash>$([System.String]::Copy('$(_CMDDIR)').Replace($(_CMDDIR_Grandparent)\,''))</CategoryWithSlash>
-      <Category>$([System.String]::Copy('$(CategoryWithSlash)').Replace('\','.'))</Category>
+      <CategoryWithSlash Condition="'$(BuildOS)' == 'Windows_NT'" >$([System.String]::Copy('$(_CMDDIR)').Replace("$(_CMDDIR_Grandparent)\",""))</CategoryWithSlash>
+      <CategoryWithSlash Condition="'$(BuildOS)' != 'Windows_NT'" >$([System.String]::Copy('$(_CMDDIR)').Replace("$(_CMDDIR_Grandparent)/",""))</CategoryWithSlash>
+      <Category Condition="'$(BuildOS)' == 'Windows_NT'" >$([System.String]::Copy('$(CategoryWithSlash)').Replace('\','.'))</Category>
+      <Category Condition="'$(BuildOS)' != 'Windows_NT'" >$([System.String]::Copy('$(CategoryWithSlash)').Replace('/','.'))</Category>
       <XunitWrapper>$(Category).XUnitWrapper</XunitWrapper>
       <XunitWrapperSrcDir>$(XunitWrapperGeneratedCSDirBase)$(Category)</XunitWrapperSrcDir>
       <XunitWrapperOutputDir>$(XunitWrapperOutputIntermediatedDirBase)$(Category)</XunitWrapperOutputDir>
@@ -220,14 +222,16 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
     </PropertyGroup>
 
     <ItemGroup>
-      <AllCMDsPresent Include="$(_CMDDIR)\**\*.cmd" />
+      <AllCMDsPresent Include="$(_CMDDIR)\**\*.cmd" Condition="'$(BuildOS)' == 'Windows_NT'" />
+      <AllCMDsPresent Include="$(_CMDDIR)\**\*.sh" Condition="'$(BuildOS)' != 'Windows_NT'" />
       <AllCMDExcludeFilter Include="@(CanonicalExcludeList)" Condition="$(HaveExcludes)"/>
       <AllCMDs Include="@(AllCMDsPresent)" Exclude="@(AllCMDExcludeFilter)"/>
 
       <AllCommands Include="@(AllCMDs)" >
-        <_FactName>$([System.String]::Copy('%(AllCMDs.FullPath)').Replace("$(_CMDDIR)",'').Replace(".","_").Replace("\","_").Replace("-","_"))</_FactName>
-        <_ClassName>$([System.String]::Copy('%(AllCMDs.FullPath)').Replace("$(_CMDDIR)",'').Replace("cmd","").Replace(".","_").Replace("\","_").Replace("-","_"))</_ClassName>
-
+        <_FactName Condition="'$(BuildOS)' == 'Windows_NT'" >$([System.String]::Copy('%(AllCMDs.FullPath)').Replace("$(_CMDDIR)",'').Replace(".","_").Replace("\","_").Replace("-","_"))</_FactName>
+        <_ClassName Condition="'$(BuildOS)' == 'Windows_NT'" >$([System.String]::Copy('%(AllCMDs.FullPath)').Replace("$(_CMDDIR)",'').Replace("cmd","").Replace(".","_").Replace("\","_").Replace("-","_"))</_ClassName>
+        <_FactName Condition="'$(BuildOS)' != 'Windows_NT'" >$([System.String]::Copy('%(AllCMDs.FullPath)').Replace("$(_CMDDIR)",'').Replace(".","_").Replace("/","_").Replace("-","_"))</_FactName>
+        <_ClassName Condition="'$(BuildOS)' != 'Windows_NT'" >$([System.String]::Copy('%(AllCMDs.FullPath)').Replace("$(_CMDDIR)",'').Replace("sh","").Replace(".","_").Replace("/","_").Replace("-","_"))</_ClassName>
         <_XunitFact >
           <![CDATA[
 
@@ -316,7 +320,8 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
 
   <Target Name="GetListOfTestCmds">
     <ItemGroup>
-      <AllRunnableTestPaths Include="$(XunitTestBinBase)\**\*.cmd" />
+      <AllRunnableTestPaths Include="$(XunitTestBinBase)\**\*.cmd" Condition="'$(BuildOS)' == 'Windows_NT'" />
+      <AllRunnableTestPaths Include="$(XunitTestBinBase)\**\*.sh" Condition="'$(BuildOS)' != 'Windows_NT'" />
     </ItemGroup>
   </Target> 
 
index f95408f..34965a4 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!--
 ***********************************************************************************************
 CLRTest.Execute.Bash.targets
@@ -83,7 +84,7 @@ fi
       ]]></BashCLRTestEnvironmentCompatibilityCheck>
       <BashCLRTestEnvironmentCompatibilityCheck Condition="'$(JitOptimizationSensitive)' == 'true'"><![CDATA[
 $(BashCLRTestEnvironmentCompatibilityCheck)
-if [ \( ! -z "$COMPlus_JitStress" \) -o \( ! -z "$COMPlus_JitStressRegs" \) -o \( ! -z "$COMPlus_JITMinOpts" \) -o \( ! -z "$COMPlus_TailcallStress" \) ]
+if [[ ( ! -z "$COMPlus_JitStress" ) || ( ! -z "$COMPlus_JitStressRegs" ) || ( ! -z "$COMPlus_JITMinOpts" ) || ( ! -z "$COMPlus_TailcallStress" ) ]]
 then
   echo "SKIPPING EXECUTION BECAUSE ONE OR MORE OF (COMPlus_JitStress, COMPlus_JitStressRegs, COMPlus_JITMinOpts, COMPlus_TailcallStress) IS SET"
   exit $(GCBashScriptExitCode)
@@ -133,7 +134,7 @@ fi
         <Command><![CDATA[        export _DebuggerFullPath="${i#*=}"
         if [ ! -f "$_DebuggerFullPath" ]
         then
-            echo The Debugger FullPath \"$_DebuggerFullPath\" doesn\'t exist
+            echo "The Debugger FullPath %5C%22${_DebuggerFullPath}%5C%22 does not exist"
             usage
         fi]]></Command>
         <Description>Run testcases under debugger.</Description>
@@ -290,10 +291,6 @@ CLRTestExpectedExitCode=0
     <!-- Raise an error if any value in _RequiredProperties is missing  -->
     <Error Condition=" '%(_RequiredProperties.Value)'=='' "
       Text="Missing required test property [%(_RequiredProperties.Identity)]. Something isn't plumbed through correctly.  Contact $(_CLRTestBuildSystemOwner)." />
-      <!-- TODO: this is weird.  Consider eliminating it. -->
-    <GenerateParamList ArgumentItems="@(BashCLRTestExecutionScriptArgument)">
-      <Output TaskParameter="ParamList" PropertyName="_CLRTestParamList"/>
-    </GenerateParamList>
     <PropertyGroup>
       <!--
       This generates the script portion to parse all of the command line arguments.
index b49785b..875c2fc 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!--
 ***********************************************************************************************
 CLRTest.Execute.targets
@@ -96,7 +97,7 @@ This file contains the logic for providing Execution Script generation.
   -->
   
   <ItemGroup>
-    <ExecutionScriptKind Include="Batch" />
+    <ExecutionScriptKind Include="Batch" Condition="'$(BuildOS)' == 'Windows_NT'"/>
     <ExecutionScriptKind Include="Bash" />
   </ItemGroup>
 
index 1dd872c..b1da9fc 100644 (file)
@@ -23,9 +23,11 @@ WARNING:   When setting properties based on their current state (for example:
   <Target Name="GetJitDisasmBashScript"
           Returns="$(JitDisasmBashScript)">
     <PropertyGroup>
-      <InputAssemblyName Condition="'$(CLRTestKind)' == 'RunOnly'">$([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)).Replace("\","/"))</InputAssemblyName>
+      <InputAssemblyName Condition="('$(CLRTestKind)' == 'RunOnly') and ('$(BuildOS)' != 'Windows_NT')">$([MSBuild]::MakeRelative($(OutputPath.Replace("/","\\")), $(_CLRTestToRunFileFullPath.Replace("/","\\"))).Replace("\\","/"))</InputAssemblyName>
+      <InputAssemblyName Condition="('$(CLRTestKind)' == 'RunOnly') and ('$(BuildOS)' == 'Windows_NT')">$([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)))</InputAssemblyName>
       <InputAssemblyName Condition="'$(CLRTestKind)' == 'BuildAndRun'">$(MSBuildProjectName).exe</InputAssemblyName>
-      <JitDisasmOut>$([MSBuild]::MakeRelative($(OutputPath), $(BaseOutputPathWithConfig)dasm\$(BuildProjectRelativeDir)).Replace("\","/"))</JitDisasmOut>
+      <JitDisasmOut Condition="'$(BuildOS)' != 'Windows_NT'">$([MSBuild]::MakeRelative($(OutputPath.Replace("/","\\")), $(BaseOutputPathWithConfig.Replace("/","\\"))dasm\$(BuildProjectRelativeDir.Replace("/","\\"))).Replace("\\","/"))</JitDisasmOut>
+      <JitDisasmOut Condition="'$(BuildOS)' == 'Windows_NT'">$([MSBuild]::MakeRelative($(OutputPath), $(BaseOutputPathWithConfig)dasm\$(BuildProjectRelativeDir)))</JitDisasmOut>
       <JitDisasmBashScript>
 <![CDATA[
 # JitDisasm Script
@@ -48,9 +50,11 @@ fi
   <Target Name="GetJitDisasmBatchScript"
           Returns="$(JitDisasmBatchScript)">
     <PropertyGroup>
-      <InputAssemblyName Condition="'$(CLRTestKind)' == 'RunOnly'">$([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)))</InputAssemblyName>
+      <InputAssemblyName Condition="('$(CLRTestKind)' == 'RunOnly') and ('$(BuildOS)' != 'Windows_NT')">$([MSBuild]::MakeRelative($(OutputPath.Replace("/","\\")), $(_CLRTestToRunFileFullPath.Replace("/","\\"))).Replace("\\","/"))</InputAssemblyName>
+      <InputAssemblyName Condition="('$(CLRTestKind)' == 'RunOnly') and ('$(BuildOS)' == 'Windows_NT')">$([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)))</InputAssemblyName>
       <InputAssemblyName Condition="'$(CLRTestKind)' == 'BuildAndRun'">$(MSBuildProjectName).exe</InputAssemblyName>
-      <JitDisasmOut>$([MSBuild]::MakeRelative($(OutputPath), $(BaseOutputPathWithConfig)dasm\$(BuildProjectRelativeDir)))</JitDisasmOut>
+      <JitDisasmOut Condition="'$(BuildOS)' != 'Windows_NT'">$([MSBuild]::MakeRelative($(OutputPath.Replace("/","\\")), $(BaseOutputPathWithConfig.Replace("/","\\"))dasm\$(BuildProjectRelativeDir.Replace("/","\\"))).Replace("\\","/"))</JitDisasmOut>
+      <JitDisasmOut Condition="'$(BuildOS)' == 'Windows_NT'">$([MSBuild]::MakeRelative($(OutputPath), $(BaseOutputPathWithConfig)dasm\$(BuildProjectRelativeDir)))</JitDisasmOut>
       <JitDisasmBatchScript>
 <![CDATA[
 REM JitDisasm Script
@@ -72,7 +76,8 @@ if defined RunningJitDisasm (
       Name="GetIlasmRoundTripBashScript"
       Returns="$(IlasmRoundTripBashScript)">
     <PropertyGroup>
-      <InputAssemblyName Condition="'$(CLRTestKind)' == 'RunOnly'">$([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)).Replace("\","/"))</InputAssemblyName>
+      <InputAssemblyName Condition="('$(CLRTestKind)' == 'RunOnly') and ('$(BuildOS)' != 'Windows_NT')">$([MSBuild]::MakeRelative($(OutputPath.Replace("/","\\")), $(_CLRTestToRunFileFullPath.Replace("/","\\"))).Replace("\\","/"))</InputAssemblyName>
+      <InputAssemblyName Condition="('$(CLRTestKind)' == 'RunOnly') and ('$(BuildOS)' == 'Windows_NT')">$([MSBuild]::MakeRelative($(OutputPath), $(_CLRTestToRunFileFullPath)))</InputAssemblyName>
       <InputAssemblyName Condition="'$(CLRTestKind)' == 'BuildAndRun'">$(MSBuildProjectName).exe</InputAssemblyName>
       <DisassemblyName>$(MSBuildProjectName).dasm.il</DisassemblyName>
       <TargetAssemblyName>$(MSBuildProjectName).asm.exe</TargetAssemblyName>
@@ -176,4 +181,4 @@ export COMPlus_GCStress=$(RunWithGcStress)
   </PropertyGroup>
 
 
-</Project> 
+</Project>
\ No newline at end of file
index e982e5f..49e4f02 100644 (file)
@@ -24,7 +24,7 @@
   </ItemGroup>
   <ItemGroup>
     <!-- Add Compile Object Here -->
-    <Compile Include="MemCheck.cs" />
+    <Compile Include="memcheck.cs" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index e982e5f..49e4f02 100644 (file)
@@ -24,7 +24,7 @@
   </ItemGroup>
   <ItemGroup>
     <!-- Add Compile Object Here -->
-    <Compile Include="MemCheck.cs" />
+    <Compile Include="memcheck.cs" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index 36cff53..c63ce98 100644 (file)
           Returns=""
           DependsOnTargets="$(CoreCompileDependsOn)">
     <PropertyGroup>
-      <_OutputTypeArgument Condition="'$(OutputType)' == 'Library'">/DLL</_OutputTypeArgument>
-      <_OutputTypeArgument Condition="'$(OutputType)' == 'Exe'">/EXE</_OutputTypeArgument>
+      <_ShellKeyMarker Condition="'$(BuildOS)' != 'Windows_NT'">-</_ShellKeyMarker>  <!-- Work around ilasm comandline parser bugs... -->
+      <_ShellKeyMarker Condition="'$(BuildOS)' == 'Windows_NT'">/</_ShellKeyMarker>
+      <_ilasm>ilasm</_ilasm>
+      <_ilasm Condition="'$(CORE_ROOT)' != ''">$(CORE_ROOT)/ilasm</_ilasm>
+      <_OutputTypeArgument Condition="'$(OutputType)' == 'Library'">$(_ShellKeyMarker)DLL</_OutputTypeArgument>
+      <_OutputTypeArgument Condition="'$(OutputType)' == 'Exe'">$(_ShellKeyMarker)EXE</_OutputTypeArgument>
       <_IlasmSwitches>-QUIET -NOLOGO</_IlasmSwitches>
       <_IlasmSwitches Condition="'$(FoldIdenticalMethods)' == 'True'">$(_IlasmSwitches) -FOLD</_IlasmSwitches>
       <_IlasmSwitches Condition="'$(SizeOfStackReserve)' != ''">$(_IlasmSwitches) -STACK=$(SizeOfStackReserve)</_IlasmSwitches>
@@ -22,7 +26,7 @@
       <_IlasmSwitches Condition="'$(Optimize)' == 'True'">$(_IlasmSwitches) -OPTIMIZE</_IlasmSwitches>
     </PropertyGroup>
 
-    <Exec Command="ilasm $(_OutputTypeArgument) /OUTPUT=@(IntermediateAssembly) $(_IlasmSwitches) @(Compile)">
+    <Exec Command="$(_ilasm) $(_OutputTypeArgument) $(_ShellKeyMarker)OUTPUT=@(IntermediateAssembly) $(_IlasmSwitches) @(Compile)">
       <Output TaskParameter="ExitCode" PropertyName="_ILAsmExitCode" />
     </Exec>
     <Error Text="ILAsm failed" Condition="'$(_ILAsmExitCode)' != '0'" />
index 9fe1293..144cfce 100644 (file)
@@ -25,7 +25,7 @@
   </ItemGroup>
   <PropertyGroup></PropertyGroup>
   <ItemGroup>
-    <Compile Include="Simple.il" />
+    <Compile Include="simple.il" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index ea51f6e..59f063e 100644 (file)
@@ -25,7 +25,7 @@
   </ItemGroup>
   <PropertyGroup></PropertyGroup>
   <ItemGroup>
-    <Compile Include="TailWinApi.il" />
+    <Compile Include="tailwinapi.il" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index 7b74c27..62ffb83 100644 (file)
@@ -27,7 +27,7 @@
     <JitOptimizationSensitive>true</JitOptimizationSensitive>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="JitTailcall2.il" />
+    <Compile Include="Jittailcall2.il" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index 6e3f861..793183d 100644 (file)
@@ -25,7 +25,7 @@
   </ItemGroup>
   <PropertyGroup></PropertyGroup>
   <ItemGroup>
-    <Compile Include="zeroInit01_large.il" />
+    <Compile Include="zeroinit01_large.il" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index a009a89..6bcb7a0 100644 (file)
@@ -25,7 +25,7 @@
   </ItemGroup>
   <PropertyGroup></PropertyGroup>
   <ItemGroup>
-    <Compile Include="B04345.il" />
+    <Compile Include="b04345.il" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index fc95236..7cff691 100644 (file)
@@ -25,7 +25,7 @@
   </ItemGroup>
   <PropertyGroup></PropertyGroup>
   <ItemGroup>
-    <Compile Include="zeroInit01_small.il" />
+    <Compile Include="zeroinit01_small.il" />
   </ItemGroup>
   <ItemGroup>
     <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
index 5d417dc..eacc9fc 100644 (file)
@@ -10,6 +10,7 @@
     <OutputType>Exe</OutputType>
     <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
+    <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib>
   </PropertyGroup>
   <!-- Default configurations to help VS understand the configurations -->
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
index 780cd91..85825a9 100644 (file)
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
   <PropertyGroup>
index 0922300..7d6ce42 100644 (file)
@@ -6,6 +6,7 @@
   <packageSources>
     <clear/>
     <add key="myget.org dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
+    <add key="myget.org dotnet-corefxlab" value="https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json" />
     <add key="myget.org nugetbuild" value="https://www.myget.org/F/nugetbuild/api/v3/index.json" />
     <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
   </packageSources>
index 5a7ee2e..2443e1c 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="..\dir.props" />
 
@@ -5,7 +6,7 @@
   <PropertyGroup>
     <__BuildArch Condition="'$(__BuildArch)' == ''">x64</__BuildArch>
     <__BuildType Condition="'$(__BuildType)' == ''">Debug</__BuildType>
-    <__BuildOS Condition="'$(__BuildOS)' == ''">Windows_NT</__BuildOS>
+    <__BuildOS Condition="'$(__BuildOS)' == ''">AnyOS</__BuildOS>
     <BuildArch>$(__BuildArch)</BuildArch>
     <BuildType>$(__BuildType)</BuildType>
     <BuildOS>$(__BuildOS)</BuildOS>
@@ -37,7 +38,7 @@
   <PropertyGroup>
     <OSPlatformConfig>$(BuildOS).$(Platform).$(Configuration)</OSPlatformConfig>
     <BaseOutputPath>$(ProjectDir)\..\bin\tests</BaseOutputPath>
-    <BaseOutputPath Condition="'$(__TestRootDir)' != ''">$(__TestRootDir)\</BaseOutputPath>
+    <BaseOutputPath Condition="'$(__TestRootDir)' != ''">$(__TestRootDir)</BaseOutputPath>
     <BaseOutputPathWithConfig>$(BaseOutputPath)\$(OSPlatformConfig)\</BaseOutputPathWithConfig>
     <BinDir>$(BaseOutputPathWithConfig)</BinDir>
     <BaseIntermediateOutputPath>$(ProjectDir)\..\bin\tests\obj\$(OSPlatformConfig)\Managed\</BaseIntermediateOutputPath>
index abad765..0ccd6e9 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="dir.common.props" />
 
 
   <!-- Expose the target OS in a more convenient fashion -->
   <PropertyGroup>
-    <OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('Windows'))">Windows_NT</OSGroup>
-    <OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('Linux'))">Linux</OSGroup>
-    <OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('OSX'))">OSX</OSGroup>
-    <OSGroup Condition="'$(OSGroup)'=='' and $(Configuration.StartsWith('FreeBSD'))">FreeBSD</OSGroup>
-    <OSGroup Condition="'$(OSGroup)'==''">Windows_NT</OSGroup>
+    <OSGroup Condition="'$(OSGroup)'=='' and $(OSPlatformConfig.StartsWith('Windows'))">Windows_NT</OSGroup>
+    <OSGroup Condition="'$(OSGroup)'=='' and $(OSPlatformConfig.StartsWith('Linux'))">Linux</OSGroup>
+    <OSGroup Condition="'$(OSGroup)'=='' and $(OSPlatformConfig.StartsWith('OSX'))">OSX</OSGroup>
+    <OSGroup Condition="'$(OSGroup)'=='' and $(OSPlatformConfig.StartsWith('FreeBSD'))">FreeBSD</OSGroup>
+    <OSGroup Condition="'$(OSGroup)'==''">AnyOS</OSGroup>
   </PropertyGroup>
 
   <!-- Setup properties per OSGroup -->
index 4e6c618..5b9082d 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- Default priority building values. -->
   <PropertyGroup>
     <ProjectLanguage Condition="'$(MSBuildProjectExtension)' == '.csproj' OR '$(Language)' == 'C#' OR '$(ProjectLanguage)'==''">CSharp</ProjectLanguage>
   </PropertyGroup>
   
-  <!-- TODO (#1122): import this from the ToolsDir once it becomes available --> 
   <Import Project="$(ProjectDir)src\IL.targets" Condition="'$(ProjectLanguage)' == 'IL' And '$(CLRTestPriority)' &lt;= '$(CLRTestPriorityToBuild)'" />
 
-
   <Import Project="CLRTest.Execute.targets" />
   <Target Name="CreateExecuteScript" 
           AfterTargets="Build"
           Condition="'@(NativeProjectReferenceNormalized)' != ''"
           BeforeTargets="Build" >
      <ItemGroup>
-        <NativeProjectOutputFoldersToCopy Include="$([System.String]::Copy('%(NativeProjectReferenceNormalized.RelativeDir)').Replace($(SourceDir),$(__NativeTestIntermediatesDir)\src\))$(Configuration)\"/>
+        <NativeProjectOutputFoldersToCopy Include="$([System.String]::Copy('%(NativeProjectReferenceNormalized.RelativeDir)').Replace($(SourceDir),$(__NativeTestIntermediatesDir)\src\))" Condition="'$(BuildOS)' != 'Windows_NT'" />
+        <NativeProjectOutputFoldersToCopy Include="$([System.String]::Copy('%(NativeProjectReferenceNormalized.RelativeDir)').Replace($(SourceDir),$(__NativeTestIntermediatesDir)\src\))$(Configuration)\" Condition="'$(BuildOS)' == 'Windows_NT'" />
      </ItemGroup>
 
     <Message Text= "Full native project references are :%(NativeProjectReferenceNormalized.Identity)" />
     <Message Text= "Native binaries will be copied from :%(NativeProjectOutputFoldersToCopy.Identity)" />
-   <MSBuild Projects="$(MSBuildProjectFile)" Targets="CopyNativeProjectBinaries" Properties="NativeProjectOutputFolder=%(NativeProjectOutputFoldersToCopy.Identity)" Condition="'@(NativeProjectReference)' != ''" />
+   <MSBuild Projects="$(MSBuildProjectFile)" Targets="CopyNativeProjectBinaries" Properties="NativeProjectOutputFolder=%(NativeProjectOutputFoldersToCopy.Identity)" Condition="'@(NativeProjectReference)' != '' And '$(BuildOS)' == 'Windows_NT'" />
 
   </Target>
 
index 6ae2b7c..215ce84 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="12.0" DefaultTargets="Build" InitialTargets="VerifyBuildTools" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <Import Project="dir.props" />
 
 
   <Target Name="ResolveDisabledProjects" BeforeTargets="BuildAllProjects" >
     <ItemGroup>
-      <DisabledProjects Include="TestWrappers*\*\*.csproj" />
+      <DisabledProjects Include="TestWrappers*\**\*.csproj" />
       <DisabledProjects Include="*\**\cs_template.csproj" />
-      <DisabledProjects Include="Common\Coreclr.TestWrapper\Coreclr.TestWrapper.csproj" Condition="'$(BuildTestsAgainstPackages)' != 'true'" />
-      <DisabledProjects Include="Common\Desktop.Coreclr.TestWrapper\Desktop.Coreclr.TestWrapper.csproj" Condition="'$(BuildTestsAgainstPackages)' == 'true'" />
+      <DisabledProjects Include="Common\Coreclr.TestWrapper\Coreclr.TestWrapper.csproj" Condition="('$(BuildTestsAgainstPackages)' != 'true') And ('$(BuildOS)' == 'Windows_NT')" />
+      <DisabledProjects Include="Common\Desktop.Coreclr.TestWrapper\Desktop.Coreclr.TestWrapper.csproj" Condition="('$(BuildTestsAgainstPackages)' == 'true') Or ('$(BuildOS)' != 'Windows_NT')" />
       <DisabledProjects Include="Common\test_runtime\test_runtime.csproj" />
       <DisabledProjects Include="Common\test_dependencies\test_dependencies.csproj" />
       <DisabledProjects Include="Common\build_against_pkg_dependencies\build_against_pkg_dependencies.csproj" />
       <DisabledProjects Include="Common\external\external.csproj" />
       <DisabledProjects Include="Common\PerfHarness\PerfHarness.csproj" />
       <DisabledProjects Include="GC\Performance\Framework\GCPerfTestFramework.csproj" />
-      <DisabledProjects Include="JIT\superpmi\superpmicollect.csproj" Condition="'$(BuildTestsAgainstPackages)' == 'true'" />
+      <DisabledProjects Include="JIT\superpmi\superpmicollect.csproj" Condition="('$(BuildTestsAgainstPackages)' == 'true') Or ('$(BuildOS)' != 'Windows_NT')" />
       <DisabledProjects Include="JIT\config\**" />
       <DisabledProjects Include="Performance\performance.csproj" />
       <DisabledProjects Include="Loader\classloader\generics\regressions\DD117522\Test.csproj" />
       <DisabledProjects Include="Loader\classloader\generics\GenericMethods\VSW491668.csproj" /> <!-- issue 5501 -->
+      <DisabledProjects Include="JIT\Directed\nullabletypes\**\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Performance\CodeQuality\Span\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <!-- The following project requires System.Reflection.Emit which is not supported on Linux, see issue corefx@4491 -->
+      <DisabledProjects Include="JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b67414\b67414.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <!-- The following projects cannot be compiled on Linux due to "csc.exe /debug:+" issue. Remove them after compiler will be fixed -->
+      <DisabledProjects Include="JIT\Directed\Misc\gettype\gettypetypeofmatrix.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\PREFIX\PrimitiveVT\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv1_cs_d.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv1_cs_do.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv1_cs_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv1_cs_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv2_cs_d.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv2_cs_do.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv2_cs_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv2_cs_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv3_il_d.ilproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\perffix\primitivevt\callconv3_il_r.ilproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\gettypetypeof\gettypetypeofmatrix.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\int16_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\int16_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\int32_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\int32_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\int64_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\int64_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint16_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint16_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint32_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint32_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint64Opt_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint64Opt_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint64_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint64_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint8_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Directed\shift\uint8_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Generics\Constraints\Call_instance01_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Generics\Constraints\Call_instance01_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\Boxing\xlang\*.*" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\NaN\arithm32_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\NaN\arithm32_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\NaN\arithm64_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\NaN\arithm64_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\cctor\misc\throw_cs_r.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\cctor\misc\throw_cs_ro.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\eh\**\*.*" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\flowgraph\bug619534\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Methodical\stringintern\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\CLR-x86-JIT\V1-M11-Beta1\b43313\b43313.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b51875\b51875.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\CLR-x86-JIT\V1-M12-Beta2\b55197\b55197.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\CLR-x86-JIT\V2.0-RTM\b491215\b491215.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\CLR-x86-JIT\v2.1\b152292\b152292.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\Dev11\External\Dev11_243742\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_1206929\DevDiv_1206929.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_142976\DevDiv_142976.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_150265\DevDiv_150265.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_168744\DevDiv_168744.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_200492\DevDiv_200492.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_255294\DevDiv_255294.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_278365\DevDiv_278365.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_278375\DevDiv_278375.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_278376\DevDiv_278376.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_278526\DevDiv_278526.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_280120\DevDiv_280120.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_280123\DevDiv_280123.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_280127\DevDiv_280127.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_283795\DevDiv_283795.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_284785\DevDiv_284785.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\DevDiv_288222\DevDiv_288222.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_10215\GitHub_10215.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_10481\GitHub_10481.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_10621\GitHub_10621.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_10714\GitHub_10714.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_1296\GitHub_1296.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_1323\GitHub_1323.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_2580\GitHub_2580.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_2610\GitHub_2610.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_3449\GitHub_3449.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_4044\GitHub_4044.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_4115\GitHub_4115.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_5047\GitHub_5047.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_5696\GitHub_5696.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_6238\GitHub_6238.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_6239\GitHub_6239.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_6318\GitHub_6318.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_6649\GitHub_6649.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_7508\Vector3Test.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_7906\GitHub_7906.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_8220\GitHub_8220.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_8460\GitHub_8460.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_8599\GitHub_8599.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_9891\GitHub_9891.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_10780\GitHub_10780.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_10940\GitHub_10940.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_11343\GitHub_11343.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_11408\GitHub_11408.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\Regression\JitBlue\GitHub_11733\GitHub_11733.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\jit64\eh\**\*.*" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\jit64\hfa\main\**\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\opt\virtualstubdispatch\manyintf\*.csproj" Condition="'$(RunningOnCore)' == 'true'" />
+      <DisabledProjects Include="JIT\jit64\opt\cse\hugeexpr1.csproj" Condition="'$(BuildOS)' == 'OSX'" />
+      <DisabledProjects Include="JIT\jit64\opt\cse\HugeField2.csproj" Condition="'$(BuildOS)' == 'OSX'" />
+      <DisabledProjects Include="JIT\jit64\opt\cse\hugeSimpleExpr1.csproj" Condition="'$(BuildOS)' == 'OSX'" />
+      <DisabledProjects Include="Loader\classloader\generics\Instantiation\Nesting\NestedGenericStructs.csproj" Condition="'$(BuildOS)' == 'OSX'" />
     </ItemGroup>
     
     <ItemGroup>
index 3b59343..7417d28 100644 (file)
@@ -1,3 +1,4 @@
+baseservices/threading/paramthreadstart/ThreadStartBool_1/ThreadStartBool_1.sh
 baseservices/threading/paramthreadstart/ThreadStartString_1/ThreadStartString_1.sh
 CoreMangLib/cti/system/multicastdelegate/MulticastDelegateCtor/MulticastDelegateCtor.sh
 CoreMangLib/cti/system/runtime/interopservices/marshal/MarshalGetLastWin32Error_PSC/MarshalGetLastWin32Error_PSC.sh