mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
27 lines
711 B
Bash
Executable File
27 lines
711 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# shellcheck source=scripts/common.sh
|
|
source "${REPO_ROOT}/scripts/common.sh"
|
|
|
|
SOLTMPDIR=$(mktemp -d -t "cmdline-test-linking-XXXXXX")
|
|
cd "$SOLTMPDIR"
|
|
|
|
echo 'library L { function f() public pure {} } contract C { function f() public pure { L.f(); } }' > x.sol
|
|
msg_on_error --no-stderr "$SOLC" --bin -o . x.sol
|
|
|
|
# Explanation and placeholder should be there
|
|
grep -q '//' C.bin && grep -q '__' C.bin
|
|
|
|
# But not in library file.
|
|
grep -q -v '[/_]' L.bin
|
|
|
|
# Now link
|
|
printf " "
|
|
msg_on_error "$SOLC" --link --libraries x.sol:L=0x90f20564390eAe531E810af625A22f51385Cd222 C.bin
|
|
|
|
# Now the placeholder and explanation should be gone.
|
|
grep -q -v '[/_]' C.bin
|
|
|
|
rm -r "$SOLTMPDIR"
|