You've already forked linux-packaging-mono
Imported Upstream version 5.2.0.175
Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
parent
4bdbaf4a88
commit
966bba02bb
149
external/corert/tests/runtest.sh
vendored
149
external/corert/tests/runtest.sh
vendored
@@ -4,8 +4,12 @@ usage()
|
||||
{
|
||||
echo "Usage: $0 [OS] [arch] [flavor] [-mode] [-runtest] [-coreclr <subset>]"
|
||||
echo " -mode : Compilation mode. Specify cpp/ryujit. Default: ryujit"
|
||||
echo " -test : Run a single test by folder name (ie, BasicThreading)"
|
||||
echo " -runtest : Should just compile or run compiled binary? Specify: true/false. Default: true."
|
||||
echo " -coreclr : Download and run the CoreCLR repo tests"
|
||||
echo " -multimodule : Compile the framework as a .so and link tests against it (ryujit only)"
|
||||
echo " -coredumps : [For CI use] Enables core dump generation, and analyzes and possibly stores/uploads"
|
||||
echo " dumps collected during test run."
|
||||
echo ""
|
||||
echo " --- CoreCLR Subset ---"
|
||||
echo " top200 : Runs broad coverage / CI validation (~200 tests)."
|
||||
@@ -20,7 +24,7 @@ runtest()
|
||||
__SourceFolder=$1
|
||||
__SourceFileName=$2
|
||||
__SourceFile=${__SourceFolder}/${__SourceFileName}
|
||||
${__SourceFile}.sh $1/bin/${CoreRT_BuildType}/native $2
|
||||
${__SourceFile}.sh $1/bin/${CoreRT_BuildType}/${CoreRT_BuildArch}/native $2
|
||||
return $?
|
||||
}
|
||||
|
||||
@@ -28,21 +32,38 @@ run_test_dir()
|
||||
{
|
||||
local __test_dir=$1
|
||||
local __mode=$2
|
||||
local __extra_cxxflags=$3
|
||||
local __extra_linkflags=$4
|
||||
local __dir_path=`dirname ${__test_dir}`
|
||||
local __filename=`basename ${__dir_path}`
|
||||
local __extra_args=""
|
||||
if [ "${__mode}" = "Cpp" ]; then
|
||||
__extra_args="${__extra_args} /p:NativeCodeGen=cpp"
|
||||
__extra_args="${__extra_args} /p:NativeCodeGen=cpp"
|
||||
fi
|
||||
if [ -n "${__extra_cxxflags}" ]; then
|
||||
__extra_cxxflags="/p:AdditionalCppCompilerFlags=\"${__extra_cxxflags}\""
|
||||
fi
|
||||
if [ -n "${__extra_cxxflags}" ]; then
|
||||
__extra_linkflags="/p:AdditionalLinkerFlags=\"${__extra_linkflags}\""
|
||||
fi
|
||||
if [ "${CoreRT_MultiFileConfiguration}" = "MultiModule" ]; then
|
||||
__extra_args="${__extra_args} /p:IlcMultiModule=true"
|
||||
fi
|
||||
|
||||
rm -rf ${__dir_path}/bin ${__dir_path}/obj
|
||||
rm -rf ${__dir_path}/bin/${CoreRT_BuildType} ${__dir_path}/obj/${CoreRT_BuildType}
|
||||
|
||||
local __msbuild_dir=${CoreRT_TestRoot}/../Tools
|
||||
echo ${__msbuild_dir}/msbuild.sh /m /p:IlcPath=${CoreRT_ToolchainDir} /p:Configuration=${CoreRT_BuildType} /p:RepoLocalBuild=true ${__extra_args} ${__dir_path}/${__filename}.csproj
|
||||
${__msbuild_dir}/msbuild.sh /m /p:IlcPath=${CoreRT_ToolchainDir} /p:Configuration=${CoreRT_BuildType} /p:RepoLocalBuild=true ${__extra_args} ${__dir_path}/${__filename}.csproj
|
||||
|
||||
runtest ${__dir_path} ${__filename}
|
||||
echo ${__msbuild_dir}/dotnetcli/dotnet ${__msbuild_dir}/MSBuild.dll /ds /m /p:IlcPath=${CoreRT_ToolchainDir} /p:Configuration=${CoreRT_BuildType} /p:Platform=${CoreRT_BuildArch} /p:RepoLocalBuild=true "/p:FrameworkLibPath=${CoreRT_TestRoot}/../bin/Product/${CoreRT_BuildOS}.${CoreRT_BuildArch}.${CoreRT_BuildType}/lib" "/p:FrameworkObjPath=${CoreRT_TestRoot}/../bin/obj/${CoreRT_BuildOS}.${CoreRT_BuildArch}.${CoreRT_BuildType}/Framework" ${__extra_args} "${__extra_cxxflags}" "${__extra_linkflags}" ${__dir_path}/${__filename}.csproj
|
||||
${__msbuild_dir}/dotnetcli/dotnet ${__msbuild_dir}/MSBuild.dll /ds /m /p:IlcPath=${CoreRT_ToolchainDir} /p:Configuration=${CoreRT_BuildType} /p:Platform=${CoreRT_BuildArch} /p:RepoLocalBuild=true "/p:FrameworkLibPath=${CoreRT_TestRoot}/../bin/Product/${CoreRT_BuildOS}.${CoreRT_BuildArch}.${CoreRT_BuildType}/lib" "/p:FrameworkObjPath=${CoreRT_TestRoot}/../bin/obj/${CoreRT_BuildOS}.${CoreRT_BuildArch}.${CoreRT_BuildType}/Framework" ${__extra_args} "${__extra_cxxflags}" "${__extra_linkflags}" ${__dir_path}/${__filename}.csproj
|
||||
|
||||
local __exitcode=$?
|
||||
|
||||
if [ ${CoreRT_TestRun} == true ]; then
|
||||
runtest ${__dir_path} ${__filename}
|
||||
__exitcode=$?
|
||||
fi
|
||||
|
||||
if [ ${__exitcode} == 0 ]; then
|
||||
local __pass_var=__${__mode}PassedTests
|
||||
eval ${__pass_var}=$((${__pass_var} + 1))
|
||||
@@ -101,6 +122,7 @@ run_coreclr_tests()
|
||||
pushd ${CoreRT_TestRoot}/CoreCLR/runtest
|
||||
|
||||
export CoreRT_TestRoot
|
||||
export CoreRT_EnableCoreDumps
|
||||
|
||||
CoreRT_TestSelectionArg=
|
||||
if [ "$SelectedTests" = "top200" ]; then
|
||||
@@ -121,7 +143,13 @@ CoreRT_CliBinDir=${CoreRT_TestRoot}/../Tools/dotnetcli
|
||||
CoreRT_BuildArch=x64
|
||||
CoreRT_BuildType=Debug
|
||||
CoreRT_TestRun=true
|
||||
CoreRT_TestCompileMode=ryujit
|
||||
CoreRT_TestCompileMode=
|
||||
CoreRT_CrossRootFS=
|
||||
CoreRT_CrossCXXFlags=
|
||||
CoreRT_CrossLinkerFlags=
|
||||
CoreRT_CrossBuild=0
|
||||
CoreRT_EnableCoreDumps=0
|
||||
CoreRT_TestName=*
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
lowerI="$(echo $1 | awk '{print tolower($0)}')"
|
||||
@@ -139,6 +167,9 @@ while [ "$1" != "" ]; do
|
||||
arm)
|
||||
CoreRT_BuildArch=arm
|
||||
;;
|
||||
armel)
|
||||
CoreRT_BuildArch=armel
|
||||
;;
|
||||
arm64)
|
||||
CoreRT_BuildArch=arm64
|
||||
;;
|
||||
@@ -152,6 +183,10 @@ while [ "$1" != "" ]; do
|
||||
shift
|
||||
CoreRT_TestCompileMode=$1
|
||||
;;
|
||||
-test)
|
||||
shift
|
||||
CoreRT_TestName=$1
|
||||
;;
|
||||
-runtest)
|
||||
shift
|
||||
CoreRT_TestRun=$1
|
||||
@@ -160,6 +195,10 @@ while [ "$1" != "" ]; do
|
||||
shift
|
||||
CoreRT_CliBinDir=$1
|
||||
;;
|
||||
-cross)
|
||||
shift
|
||||
CoreRT_CrossBuild=$1
|
||||
;;
|
||||
-coreclr)
|
||||
CoreRT_RunCoreCLRTests=true;
|
||||
shift
|
||||
@@ -172,12 +211,62 @@ while [ "$1" != "" ]; do
|
||||
exit -1
|
||||
fi
|
||||
;;
|
||||
-multimodule)
|
||||
CoreRT_MultiFileConfiguration=MultiModule;
|
||||
;;
|
||||
-coredumps)
|
||||
CoreRT_EnableCoreDumps=1
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
CoreRT_ExtraCXXFlags=
|
||||
CoreRT_ExtraLinkFlags=
|
||||
if [ ${CoreRT_CrossBuild} != 0 ]; then
|
||||
CoreRT_TestRun=false
|
||||
CoreRT_CrossRootFS=${CoreRT_TestRoot}/../cross/rootfs/${CoreRT_BuildArch}
|
||||
# all values are brought from the appropriate toolchain.cmake's
|
||||
case $CoreRT_BuildArch in
|
||||
arm)
|
||||
CoreRT_CrossCXXFlags="-target armv7-linux-gnueabihf -mthumb -mfpu=vfpv3 --sysroot=${CoreRT_CrossRootFS}"
|
||||
CoreRT_CrossLinkerFlags="-target arm-linux-gnueabihf -B ${CoreRT_CrossRootFS}/usr/lib/gcc/arm-linux-gnueabihf `
|
||||
`-L${CorRT_CrossRootFS}/lib/arm-linux-gnueabihf --sysroot=${CoreRT_CrossRootFS}"
|
||||
;;
|
||||
arm64)
|
||||
CoreRT_CrossCXXFlags="-target aarch64-linux-gnu --sysroot=${CoreRT_CrossRootFS}"
|
||||
CoreRT_CrossLinkerFlags="-target aarch64-linux-gnu -B ${CoreRT_CrossRootFS}/usr/lib/gcc/aarch64-linux-gnu `
|
||||
`-L${CoreRT_CrossRootFS}/lib/aarch64-linux-gnu --sysroot=${CoreRT_CrossRootFS}"
|
||||
;;
|
||||
armel)
|
||||
CoreRT_CrossCXXFlags="-target armv7-linux-gnueabi -mthumb -mfpu=vfpv3 -mfloat-abi=softfp --sysroot=${CoreRT_CrossRootFS}"
|
||||
CoreRT_CrossLinkerFlags="-target arm-linux-gnueabi --sysroot=${CoreRT_CrossRootFS}"
|
||||
ID=
|
||||
if [ -e $ROOTFS_DIR/etc/os-release ]; then
|
||||
source $ROOTFS_DIR/etc/os-release
|
||||
fi
|
||||
if [ "$ID" = "tizen" ]; then
|
||||
CoreRT_CrossCXXFlags="${CoreRT_CrossCXXFlags} -isystem ${CoreRT_CrossRootFS}/usr/lib/gcc/armv7l-tizen-linux-gnueabi/4.9.2/include/c++ `
|
||||
`-isystem ${CoreRT_CrossRootFS}//usr/lib/gcc/armv7l-tizen-linux-gnueabi/4.9.2/include/c++/armv7l-tizen-linux-gnueabi `
|
||||
`-isystem ${CoreRT_CrossRootFS}/armel/usr/include"
|
||||
TIZEN_TOOLCHAIN="armv7l-tizen-linux-gnueabi/4.9.2"
|
||||
CoreRT_CrossLinkerFlags="${CoreRT_CrossLinkerFlags} -B${CoreRT_CrossRootFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN} `
|
||||
`-L${CoreRT_CrossRootFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}"
|
||||
else
|
||||
TOOLCHAIN="arm-linux-gnueabi"
|
||||
CoreRT_CrossCXXFlags="${CoreRT_CrossCXXFlags} -isystem ${CoreRT_CrossRootFS}/usr/include/c++/4.9 `
|
||||
`-isystem ${CoreRT_CrossRootFS}/usr/include/arm-linux-gnueabi/c++/4.9 "
|
||||
CoreRT_CrossLinkerFlags="${CoreRT_CrossLinkerFlags} -B${CoreRT_CrossRootFS}/usr/lib/gcc/${TOOLCHAIN}/4.9 `
|
||||
`-L${CoreRT_CrossRootFS}/usr/lib/gcc/${TOOLCHAIN}/4.9"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
CoreRT_ExtraCXXFlags="$CoreRT_ExtraCXXFlags $CoreRT_CrossCXXFlags"
|
||||
CoreRT_ExtraLinkFlags="$CoreRT_ExtraLinkFlags $CoreRT_CrossLinkerFlags"
|
||||
fi
|
||||
|
||||
source "$CoreRT_TestRoot/testenv.sh"
|
||||
|
||||
__BuildStr=${CoreRT_BuildOS}.${CoreRT_BuildArch}.${CoreRT_BuildType}
|
||||
@@ -185,6 +274,15 @@ __CoreRTTestBinDir=${CoreRT_TestRoot}/../bin/tests
|
||||
__LogDir=${CoreRT_TestRoot}/../bin/Logs/${__BuildStr}/tests
|
||||
__build_os_lowcase=$(echo "${CoreRT_BuildOS}" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
|
||||
if [ "$CoreRT_MultiFileConfiguration" = "MultiModule" ]; then
|
||||
CoreRT_TestCompileMode=ryujit
|
||||
fi
|
||||
|
||||
if [ "$CoreRT_TestCompileMode" = "jit" ]; then
|
||||
CoreRT_TestCompileMode=ryujit
|
||||
fi
|
||||
|
||||
if [ ! -d $__LogDir ]; then
|
||||
mkdir -p $__LogDir
|
||||
fi
|
||||
@@ -207,13 +305,17 @@ __JitPassedTests=0
|
||||
echo > ${__CoreRTTestBinDir}/testResults.tmp
|
||||
|
||||
__BuildOsLowcase=$(echo "${CoreRT_BuildOS}" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
for csproj in $(find src -name "*.csproj")
|
||||
__TestSearchPath=src/Simple/${CoreRT_TestName}
|
||||
for csproj in $(find ${__TestSearchPath} -name "*.csproj")
|
||||
do
|
||||
if [ ! -e `dirname ${csproj}`/no_unix ]; then
|
||||
run_test_dir ${csproj} "Jit"
|
||||
if [ "${CoreRT_TestCompileMode}" != "cpp" ]; then
|
||||
run_test_dir ${csproj} "Jit"
|
||||
fi
|
||||
if [ ! -e `dirname ${csproj}`/no_cpp ]; then
|
||||
run_test_dir ${csproj} "Cpp"
|
||||
if [ "${CoreRT_TestCompileMode}" != "ryujit" ]; then
|
||||
run_test_dir ${csproj} "Cpp" "$CoreRT_ExtraCXXFlags" "$CoreRT_ExtraLinkFlags"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -222,14 +324,23 @@ __TotalTests=$((${__JitTotalTests} + ${__CppTotalTests}))
|
||||
__PassedTests=$((${__JitPassedTests} + ${__CppPassedTests}))
|
||||
__FailedTests=$((${__TotalTests} - ${__PassedTests}))
|
||||
|
||||
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > ${__CoreRTTestBinDir}/testResults.xml
|
||||
echo "<assemblies>" >> ${__CoreRTTestBinDir}/testResults.xml
|
||||
echo "<assembly name=\"ILCompiler\" total=\"${__TotalTests}\" passed=\"${__PassedTests}\" failed=\"${__FailedTests}\" skipped=\"0\">" >> ${__CoreRTTestBinDir}/testResults.xml
|
||||
echo "<collection total=\"${__TotalTests}\" passed=\"${__PassedTests}\" failed=\"${__FailedTests}\" skipped=\"0\">" >> ${__CoreRTTestBinDir}/testResults.xml
|
||||
cat "${__CoreRTTestBinDir}/testResults.tmp" >> ${__CoreRTTestBinDir}/testResults.xml
|
||||
echo "</collection>" >> ${__CoreRTTestBinDir}/testResults.xml
|
||||
echo "</assembly>" >> ${__CoreRTTestBinDir}/testResults.xml
|
||||
echo "</assemblies>" >> ${__CoreRTTestBinDir}/testResults.xml
|
||||
if [ "$CoreRT_MultiFileConfiguration" = "MultiModule" ]; then
|
||||
__TestResultsLog=${__CoreRTTestBinDir}/${CoreRT_MultiFileConfiguration}/testResults.xml
|
||||
if [ ! -d ${__CoreRTTestBinDir}/${CoreRT_MultiFileConfiguration} ]; then
|
||||
mkdir -p ${__CoreRTTestBinDir}/${CoreRT_MultiFileConfiguration}
|
||||
fi
|
||||
else
|
||||
__TestResultsLog=${__CoreRTTestBinDir}/testResults.xml
|
||||
fi
|
||||
|
||||
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" > ${__TestResultsLog}
|
||||
echo "<assemblies>" >> ${__TestResultsLog}
|
||||
echo "<assembly name=\"ILCompiler\" total=\"${__TotalTests}\" passed=\"${__PassedTests}\" failed=\"${__FailedTests}\" skipped=\"0\">" >> ${__TestResultsLog}
|
||||
echo "<collection total=\"${__TotalTests}\" passed=\"${__PassedTests}\" failed=\"${__FailedTests}\" skipped=\"0\">" >> ${__TestResultsLog}
|
||||
cat "${__CoreRTTestBinDir}/testResults.tmp" >> ${__TestResultsLog}
|
||||
echo "</collection>" >> ${__TestResultsLog}
|
||||
echo "</assembly>" >> ${__TestResultsLog}
|
||||
echo "</assemblies>" >> ${__TestResultsLog}
|
||||
|
||||
|
||||
echo "JIT - TOTAL: ${__JitTotalTests} PASSED: ${__JitPassedTests}"
|
||||
|
||||
Reference in New Issue
Block a user