From: Matt Ellis Date: Wed, 25 May 2016 17:25:49 +0000 (-0700) Subject: Be more explict when picking up libs from CoreFx X-Git-Tag: accepted/tizen/base/20180629.140029~4544^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bcda7c5bbd829b76319a99394186ae9a90df4b51;p=platform%2Fupstream%2Fcoreclr.git Be more explict when picking up libs from CoreFx There's no contract in the CoreFx build layout that enforces an assembly is only in one location in the resulting binaries folder. Different projects may have different versions of dependent assemblies SxS with them in their output folder. To work around this, update the copy logic to use the folder name to determine what assembly to copy from it. --- diff --git a/tests/runtest.sh b/tests/runtest.sh index 6c3d6a6..2a70c1b 100755 --- a/tests/runtest.sh +++ b/tests/runtest.sh @@ -355,16 +355,19 @@ function create_core_overlay { if [ ! -d "$currDir" ]; then exit_with_error "$errorSource" "Directory specified in --coreFxBinDir does not exist: $currDir" fi - - (cd $currDir && find . -iwholename '*/netstandard/*.dll' \! -iwholename '*test*' \! -iwholename '*/ToolRuntime/*' \! -iwholename '*/RemoteExecutorConsoleApp/*' \! -iwholename '*aot*' -exec cp -n '{}' "$coreOverlayDir/" \;) + pushd $currDir > /dev/null + for dirName in $(find . -iname '*.dll' \! -iwholename '*test*' \! -iwholename '*/ToolRuntime/*' \! -iwholename '*/RemoteExecutorConsoleApp/*' \! -iwholename '*/net*' \! -iwholename '*aot*' -exec dirname {} \; | uniq | sed 's/\.\/\(.*\)/\1/g'); do + cp -n -v "$currDir/$dirName/$dirName.dll" "$coreOverlayDir/" + done + popd $currDur > /dev/null done done <<< $coreFxBinDir - cp -f "$coreFxNativeBinDir/Native/"*."$libExtension" "$coreOverlayDir/" 2>/dev/null + cp -f -v "$coreFxNativeBinDir/Native/"*."$libExtension" "$coreOverlayDir/" 2>/dev/null - cp -f "$coreClrBinDir/"* "$coreOverlayDir/" 2>/dev/null - cp -f "$mscorlibDir/mscorlib.dll" "$coreOverlayDir/" - cp -n "$testDependenciesDir"/* "$coreOverlayDir/" 2>/dev/null + cp -f -v "$coreClrBinDir/"* "$coreOverlayDir/" 2>/dev/null + cp -f -v "$mscorlibDir/mscorlib.dll" "$coreOverlayDir/" + cp -n -v "$testDependenciesDir"/* "$coreOverlayDir/" 2>/dev/null if [ -f "$coreOverlayDir/mscorlib.ni.dll" ]; then # Test dependencies come from a Windows build, and mscorlib.ni.dll would be the one from Windows rm -f "$coreOverlayDir/mscorlib.ni.dll"