summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ellis <matell@microsoft.com>2016-05-25 10:25:49 -0700
committerMatt Ellis <matell@microsoft.com>2016-05-25 13:29:08 -0700
commitbcda7c5bbd829b76319a99394186ae9a90df4b51 (patch)
tree7571d001f02538af2406e2d20b5ca953aa3c10cd
parentd316b89adcb622f28b3ba85eddeff345b289c423 (diff)
downloadcoreclr-bcda7c5bbd829b76319a99394186ae9a90df4b51.tar.gz
coreclr-bcda7c5bbd829b76319a99394186ae9a90df4b51.tar.bz2
coreclr-bcda7c5bbd829b76319a99394186ae9a90df4b51.zip
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.
-rwxr-xr-xtests/runtest.sh15
1 files changed, 9 insertions, 6 deletions
diff --git a/tests/runtest.sh b/tests/runtest.sh
index 6c3d6a6dcd..2a70c1b4b0 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"