Skip to content

Commit 0745279

Browse files
committed
externalTests: Generalize force_truffle_solc_modules and make it use symlinks instead of redownloading solc-js
1 parent c090ff9 commit 0745279

File tree

6 files changed

+18
-21
lines changed

6 files changed

+18
-21
lines changed

test/externalTests/colony.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ function colony_test
5252
cd ..
5353

5454
replace_version_pragmas
55-
force_truffle_solc_modules "$SOLJSON"
55+
force_solc_modules "${DIR}/solc"
5656

5757
for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
5858
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn

test/externalTests/common.sh

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -112,25 +112,22 @@ function neutralize_package_json_hooks
112112
sed -i 's|"prepare": *".*"|"prepare": ""|g' package.json
113113
}
114114

115-
function force_truffle_solc_modules
115+
function force_solc_modules
116116
{
117-
local soljson="$1"
117+
local custom_solcjs_path="${1:-solc/}"
118+
119+
[[ -d node_modules/ ]] || assertFail
118120

119-
# Replace solc package by v0.5.0 and then overwrite with current version.
120-
printLog "Forcing solc version for all Truffle modules..."
121-
for d in node_modules node_modules/truffle/node_modules
121+
printLog "Replacing all installed solc-js with a link to the latest version..."
122+
soljson_binaries=$(find node_modules -type f -path "*/solc/soljson.js")
123+
for soljson_binary in $soljson_binaries
122124
do
123-
(
124-
if [ -d "$d" ]; then
125-
cd $d
126-
rm -rf solc
127-
git clone --depth 1 -b master https://github.com/ethereum/solc-js.git solc
128-
cp "$soljson" solc/soljson.js
129-
130-
cd solc
131-
npm install
132-
fi
133-
)
125+
local solc_module_path
126+
solc_module_path=$(dirname "$soljson_binary")
127+
128+
printLog "Found and replaced solc-js in $solc_module_path"
129+
rm -r "$solc_module_path"
130+
ln -s "$custom_solcjs_path" "$solc_module_path"
134131
done
135132
}
136133

test/externalTests/ens.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function ens_test
5050
npm install
5151

5252
replace_version_pragmas
53-
force_truffle_solc_modules "$SOLJSON"
53+
force_solc_modules "${DIR}/solc"
5454

5555
for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
5656
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn

test/externalTests/gnosis-v2.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function gnosis_safe_test
5151
npm install --package-lock
5252

5353
replace_version_pragmas
54-
force_truffle_solc_modules "$SOLJSON"
54+
force_solc_modules "${DIR}/solc"
5555

5656
for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
5757
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn

test/externalTests/gnosis.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ function gnosis_safe_test
4949
npm install --package-lock
5050

5151
replace_version_pragmas
52-
force_truffle_solc_modules "$SOLJSON"
52+
force_solc_modules "${DIR}/solc"
5353

5454
for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
5555
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn

test/externalTests/zeppelin.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ function zeppelin_test
4646
npm install
4747

4848
replace_version_pragmas
49-
force_truffle_solc_modules "$SOLJSON"
49+
force_solc_modules "${DIR}/solc"
5050

5151
for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do
5252
truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn

0 commit comments

Comments
 (0)