Skip to content

Commit e5d7b81

Browse files
authored
Merge pull request #12397 from ethereum/enable-ext-test-presets-that-compile-but-fail-tests
Enable external test presets that compile but fail tests
2 parents 113ecbd + 1124e28 commit e5d7b81

File tree

6 files changed

+42
-18
lines changed

6 files changed

+42
-18
lines changed

test/externalTests/colony.sh

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,16 @@ function colony_test
3636
local repo="https://github.com/solidity-external-tests/colonyNetwork.git"
3737
local branch=develop_080
3838
local config_file="truffle.js"
39+
40+
local compile_only_presets=(
41+
ir-no-optimize # Compiles but tests run out of gas
42+
ir-optimize-evm-only # Compiles but tests run out of gas
43+
legacy-no-optimize # Compiles but tests run out of gas
44+
legacy-optimize-evm-only # Compiles but tests run out of gas
45+
)
3946
local settings_presets=(
40-
#ir-no-optimize # Compiles but tests run out of gas
41-
#ir-optimize-evm-only # Compiles but tests run out of gas
47+
"${compile_only_presets[@]}"
4248
ir-optimize-evm+yul
43-
#legacy-no-optimize # Compiles but tests run out of gas
44-
#legacy-optimize-evm-only # Compiles but tests run out of gas
4549
legacy-optimize-evm+yul
4650
)
4751

@@ -67,7 +71,7 @@ function colony_test
6771
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules "${DIR}/solc"
6872

6973
for preset in $selected_optimizer_presets; do
70-
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" compile_fn test_fn
74+
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" "${compile_only_presets[*]}" compile_fn test_fn
7175
done
7276
}
7377

test/externalTests/common.sh

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -328,12 +328,16 @@ function compile_and_run_test
328328
local compile_fn="$1"
329329
local test_fn="$2"
330330
local verify_fn="$3"
331+
local preset="$4"
332+
local compile_only_presets="$5"
333+
334+
[[ $preset != *" "* ]] || assertFail "Preset names must not contain spaces."
331335

332336
printLog "Running compile function..."
333337
time $compile_fn
334338
$verify_fn "$SOLCVERSION_SHORT" "$SOLCVERSION"
335339

336-
if [[ "$COMPILE_ONLY" == 1 ]]; then
340+
if [[ "$COMPILE_ONLY" == 1 || " $compile_only_presets " == *" $preset "* ]]; then
337341
printLog "Skipping test function..."
338342
else
339343
printLog "Running test function..."
@@ -347,24 +351,26 @@ function truffle_run_test
347351
local binary_type="$2"
348352
local solc_path="$3"
349353
local preset="$4"
350-
local compile_fn="$5"
351-
local test_fn="$6"
354+
local compile_only_presets="$5"
355+
local compile_fn="$6"
356+
local test_fn="$7"
352357

353358
truffle_clean
354359
force_truffle_compiler_settings "$config_file" "$binary_type" "$solc_path" "$preset"
355-
compile_and_run_test compile_fn test_fn truffle_verify_compiler_version
360+
compile_and_run_test compile_fn test_fn truffle_verify_compiler_version "$preset" "$compile_only_presets"
356361
}
357362

358363
function hardhat_run_test
359364
{
360365
local config_file="$1"
361366
local preset="$2"
362-
local compile_fn="$3"
363-
local test_fn="$4"
367+
local compile_only_presets="$3"
368+
local compile_fn="$4"
369+
local test_fn="$5"
364370

365371
hardhat_clean
366372
force_hardhat_compiler_settings "$config_file" "$preset"
367-
compile_and_run_test compile_fn test_fn hardhat_verify_compiler_version
373+
compile_and_run_test compile_fn test_fn hardhat_verify_compiler_version "$preset" "$compile_only_presets"
368374
}
369375

370376
function external_test

test/externalTests/ens.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ function ens_test
3636
local repo="https://github.com/ensdomains/ens.git"
3737
local branch=master
3838
local config_file="truffle.js"
39+
40+
local compile_only_presets=()
3941
local settings_presets=(
42+
"${compile_only_presets[@]}"
4043
#ir-no-optimize # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
4144
#ir-optimize-evm-only # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
4245
ir-optimize-evm+yul
@@ -65,7 +68,7 @@ function ens_test
6568
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules "${DIR}/solc"
6669

6770
for preset in $selected_optimizer_presets; do
68-
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" compile_fn test_fn
71+
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" "${compile_only_presets[*]}" compile_fn test_fn
6972
done
7073
}
7174

test/externalTests/gnosis-v2.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,15 @@ function gnosis_safe_test
3636
local repo="https://github.com/solidity-external-tests/safe-contracts.git"
3737
local branch=v2_080
3838
local config_file="truffle-config.js"
39+
40+
local compile_only_presets=(
41+
legacy-no-optimize # "Error: while migrating GnosisSafe: Returned error: base fee exceeds gas limit"
42+
)
3943
local settings_presets=(
44+
"${compile_only_presets[@]}"
4045
#ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
4146
#ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
4247
ir-optimize-evm+yul
43-
#legacy-no-optimize # "Error: while migrating GnosisSafe: Returned error: base fee exceeds gas limit"
4448
legacy-optimize-evm-only
4549
legacy-optimize-evm+yul
4650
)
@@ -65,7 +69,7 @@ function gnosis_safe_test
6569
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules "${DIR}/solc"
6670

6771
for preset in $selected_optimizer_presets; do
68-
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" compile_fn test_fn
72+
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" "${compile_only_presets[*]}" compile_fn test_fn
6973
done
7074
}
7175

test/externalTests/gnosis.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ function gnosis_safe_test
3636
local repo="https://github.com/solidity-external-tests/safe-contracts.git"
3737
local branch=development_080
3838
local config_file="truffle-config.js"
39+
40+
local compile_only_presets=()
3941
local settings_presets=(
42+
"${compile_only_presets[@]}"
4043
#ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
4144
#ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
4245
ir-optimize-evm+yul
@@ -64,7 +67,7 @@ function gnosis_safe_test
6467
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules "${DIR}/solc"
6568

6669
for preset in $selected_optimizer_presets; do
67-
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" compile_fn test_fn
70+
truffle_run_test "$config_file" "$BINARY_TYPE" "${DIR}/solc" "$preset" "${compile_only_presets[*]}" compile_fn test_fn
6871
done
6972
}
7073

test/externalTests/zeppelin.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,14 @@ function zeppelin_test
3636
local repo="https://github.com/OpenZeppelin/openzeppelin-contracts.git"
3737
local branch=master
3838
local config_file="hardhat.config.js"
39+
40+
local compile_only_presets=(
41+
ir-optimize-evm+yul # Compiles but tests fail. See https://github.com/nomiclabs/hardhat/issues/2115
42+
)
3943
local settings_presets=(
44+
"${compile_only_presets[@]}"
4045
#ir-no-optimize # "YulException: Variable var_account_852 is 4 slot(s) too deep inside the stack."
4146
#ir-optimize-evm-only # "YulException: Variable var_account_852 is 4 slot(s) too deep inside the stack."
42-
#ir-optimize-evm+yul # Compiles but tests fail. See https://github.com/nomiclabs/hardhat/issues/2115
4347
legacy-no-optimize
4448
legacy-optimize-evm-only
4549
legacy-optimize-evm+yul
@@ -60,7 +64,7 @@ function zeppelin_test
6064
replace_version_pragmas
6165

6266
for preset in $selected_optimizer_presets; do
63-
hardhat_run_test "$config_file" "$preset" compile_fn test_fn
67+
hardhat_run_test "$config_file" "$preset" "${compile_only_presets[*]}" compile_fn test_fn
6468
done
6569
}
6670

0 commit comments

Comments
 (0)