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"
 |