Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Commit

Permalink
Be more explict when picking up libs from CoreFx
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ellismg committed May 25, 2016
1 parent d316b89 commit bcda7c5
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions tests/runtest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit bcda7c5

Please sign in to comment.