File tree Expand file tree Collapse file tree 6 files changed +42
-18
lines changed Expand file tree Collapse file tree 6 files changed +42
-18
lines changed Original file line number Diff line number Diff line change @@ -36,12 +36,16 @@ function colony_test
36
36
local repo=" https://github.com/solidity-external-tests/colonyNetwork.git"
37
37
local branch=develop_080
38
38
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
+ )
39
46
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[@]} "
42
48
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
45
49
legacy-optimize-evm+yul
46
50
)
47
51
@@ -67,7 +71,7 @@ function colony_test
67
71
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules " ${DIR} /solc"
68
72
69
73
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
71
75
done
72
76
}
73
77
Original file line number Diff line number Diff line change @@ -328,12 +328,16 @@ function compile_and_run_test
328
328
local compile_fn=" $1 "
329
329
local test_fn=" $2 "
330
330
local verify_fn=" $3 "
331
+ local preset=" $4 "
332
+ local compile_only_presets=" $5 "
333
+
334
+ [[ $preset != * " " * ]] || assertFail " Preset names must not contain spaces."
331
335
332
336
printLog " Running compile function..."
333
337
time $compile_fn
334
338
$verify_fn " $SOLCVERSION_SHORT " " $SOLCVERSION "
335
339
336
- if [[ " $COMPILE_ONLY " == 1 ]]; then
340
+ if [[ " $COMPILE_ONLY " == 1 || " $compile_only_presets " == * " $preset " * ]]; then
337
341
printLog " Skipping test function..."
338
342
else
339
343
printLog " Running test function..."
@@ -347,24 +351,26 @@ function truffle_run_test
347
351
local binary_type=" $2 "
348
352
local solc_path=" $3 "
349
353
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 "
352
357
353
358
truffle_clean
354
359
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 "
356
361
}
357
362
358
363
function hardhat_run_test
359
364
{
360
365
local config_file=" $1 "
361
366
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 "
364
370
365
371
hardhat_clean
366
372
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 "
368
374
}
369
375
370
376
function external_test
Original file line number Diff line number Diff line change @@ -36,7 +36,10 @@ function ens_test
36
36
local repo=" https://github.com/ensdomains/ens.git"
37
37
local branch=master
38
38
local config_file=" truffle.js"
39
+
40
+ local compile_only_presets=()
39
41
local settings_presets=(
42
+ " ${compile_only_presets[@]} "
40
43
# ir-no-optimize # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
41
44
# ir-optimize-evm-only # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
42
45
ir-optimize-evm+yul
@@ -65,7 +68,7 @@ function ens_test
65
68
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules " ${DIR} /solc"
66
69
67
70
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
69
72
done
70
73
}
71
74
Original file line number Diff line number Diff line change @@ -36,11 +36,15 @@ function gnosis_safe_test
36
36
local repo=" https://github.com/solidity-external-tests/safe-contracts.git"
37
37
local branch=v2_080
38
38
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
+ )
39
43
local settings_presets=(
44
+ " ${compile_only_presets[@]} "
40
45
# ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
41
46
# ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
42
47
ir-optimize-evm+yul
43
- # legacy-no-optimize # "Error: while migrating GnosisSafe: Returned error: base fee exceeds gas limit"
44
48
legacy-optimize-evm-only
45
49
legacy-optimize-evm+yul
46
50
)
@@ -65,7 +69,7 @@ function gnosis_safe_test
65
69
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules " ${DIR} /solc"
66
70
67
71
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
69
73
done
70
74
}
71
75
Original file line number Diff line number Diff line change @@ -36,7 +36,10 @@ function gnosis_safe_test
36
36
local repo=" https://github.com/solidity-external-tests/safe-contracts.git"
37
37
local branch=development_080
38
38
local config_file=" truffle-config.js"
39
+
40
+ local compile_only_presets=()
39
41
local settings_presets=(
42
+ " ${compile_only_presets[@]} "
40
43
# ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
41
44
# ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
42
45
ir-optimize-evm+yul
@@ -64,7 +67,7 @@ function gnosis_safe_test
64
67
[[ $BINARY_TYPE == solcjs ]] && force_solc_modules " ${DIR} /solc"
65
68
66
69
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
68
71
done
69
72
}
70
73
Original file line number Diff line number Diff line change @@ -36,10 +36,14 @@ function zeppelin_test
36
36
local repo=" https://github.com/OpenZeppelin/openzeppelin-contracts.git"
37
37
local branch=master
38
38
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
+ )
39
43
local settings_presets=(
44
+ " ${compile_only_presets[@]} "
40
45
# ir-no-optimize # "YulException: Variable var_account_852 is 4 slot(s) too deep inside the stack."
41
46
# 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
43
47
legacy-no-optimize
44
48
legacy-optimize-evm-only
45
49
legacy-optimize-evm+yul
@@ -60,7 +64,7 @@ function zeppelin_test
60
64
replace_version_pragmas
61
65
62
66
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
64
68
done
65
69
}
66
70
You can’t perform that action at this time.
0 commit comments