From 0745279f1562d1d7efb2707c74d046f129c74c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Wed, 27 Oct 2021 16:26:52 +0200 Subject: [PATCH] externalTests: Generalize force_truffle_solc_modules and make it use symlinks instead of redownloading solc-js --- test/externalTests/colony.sh | 2 +- test/externalTests/common.sh | 27 ++++++++++++--------------- test/externalTests/ens.sh | 2 +- test/externalTests/gnosis-v2.sh | 2 +- test/externalTests/gnosis.sh | 2 +- test/externalTests/zeppelin.sh | 2 +- 6 files changed, 17 insertions(+), 20 deletions(-) diff --git a/test/externalTests/colony.sh b/test/externalTests/colony.sh index 33526f58e..e32385af6 100755 --- a/test/externalTests/colony.sh +++ b/test/externalTests/colony.sh @@ -52,7 +52,7 @@ function colony_test cd .. replace_version_pragmas - force_truffle_solc_modules "$SOLJSON" + force_solc_modules "${DIR}/solc" for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn diff --git a/test/externalTests/common.sh b/test/externalTests/common.sh index cee846a5b..dbda3c3f4 100644 --- a/test/externalTests/common.sh +++ b/test/externalTests/common.sh @@ -112,25 +112,22 @@ function neutralize_package_json_hooks sed -i 's|"prepare": *".*"|"prepare": ""|g' package.json } -function force_truffle_solc_modules +function force_solc_modules { - local soljson="$1" + local custom_solcjs_path="${1:-solc/}" - # Replace solc package by v0.5.0 and then overwrite with current version. - printLog "Forcing solc version for all Truffle modules..." - for d in node_modules node_modules/truffle/node_modules + [[ -d node_modules/ ]] || assertFail + + printLog "Replacing all installed solc-js with a link to the latest version..." + soljson_binaries=$(find node_modules -type f -path "*/solc/soljson.js") + for soljson_binary in $soljson_binaries do - ( - if [ -d "$d" ]; then - cd $d - rm -rf solc - git clone --depth 1 -b master https://github.com/ethereum/solc-js.git solc - cp "$soljson" solc/soljson.js + local solc_module_path + solc_module_path=$(dirname "$soljson_binary") - cd solc - npm install - fi - ) + printLog "Found and replaced solc-js in $solc_module_path" + rm -r "$solc_module_path" + ln -s "$custom_solcjs_path" "$solc_module_path" done } diff --git a/test/externalTests/ens.sh b/test/externalTests/ens.sh index 5ec630658..bbdc573e2 100755 --- a/test/externalTests/ens.sh +++ b/test/externalTests/ens.sh @@ -50,7 +50,7 @@ function ens_test npm install replace_version_pragmas - force_truffle_solc_modules "$SOLJSON" + force_solc_modules "${DIR}/solc" for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn diff --git a/test/externalTests/gnosis-v2.sh b/test/externalTests/gnosis-v2.sh index e8593aa61..d92bcc186 100755 --- a/test/externalTests/gnosis-v2.sh +++ b/test/externalTests/gnosis-v2.sh @@ -51,7 +51,7 @@ function gnosis_safe_test npm install --package-lock replace_version_pragmas - force_truffle_solc_modules "$SOLJSON" + force_solc_modules "${DIR}/solc" for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn diff --git a/test/externalTests/gnosis.sh b/test/externalTests/gnosis.sh index 95a1ecd49..b6d9ab0bc 100755 --- a/test/externalTests/gnosis.sh +++ b/test/externalTests/gnosis.sh @@ -49,7 +49,7 @@ function gnosis_safe_test npm install --package-lock replace_version_pragmas - force_truffle_solc_modules "$SOLJSON" + force_solc_modules "${DIR}/solc" for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn diff --git a/test/externalTests/zeppelin.sh b/test/externalTests/zeppelin.sh index 750be3229..1e23bb7ae 100755 --- a/test/externalTests/zeppelin.sh +++ b/test/externalTests/zeppelin.sh @@ -46,7 +46,7 @@ function zeppelin_test npm install replace_version_pragmas - force_truffle_solc_modules "$SOLJSON" + force_solc_modules "${DIR}/solc" for level in $(seq "$min_optimizer_level" "$max_optimizer_level"); do truffle_run_test "$config_file" "${DIR}/solc" "$level" compile_fn test_fn