Skip to content

Commit 3ec05d0

Browse files
committed
externalTests: Add extra viaIR runs
1 parent d304c84 commit 3ec05d0

File tree

7 files changed

+25
-5
lines changed

7 files changed

+25
-5
lines changed

.circleci/config.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1037,8 +1037,9 @@ jobs:
10371037
docker:
10381038
- image: circleci/node:<<parameters.nodejs_version>>
10391039
resource_class: <<parameters.resource_class>>
1040-
# NOTE: Each external test does 3 separate compile&test runs
1041-
parallelism: 3
1040+
# NOTE: Each external test runs up to 6 independent settings presets. If parallelism is higher than
1041+
# actual preset count, some runs will exit immediately. If it's lower, some runs will get more than one preset.
1042+
parallelism: 6
10421043
environment:
10431044
TERM: xterm
10441045
COMPILE_ONLY: <<parameters.compile_only>>

test/externalTests/colony.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ function colony_test
3737
local branch=develop_080
3838
local config_file="truffle.js"
3939
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
42+
ir-optimize-evm+yul
4043
#legacy-no-optimize # Compiles but tests run out of gas
4144
#legacy-optimize-evm-only # Compiles but tests run out of gas
4245
legacy-optimize-evm+yul

test/externalTests/common.sh

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,13 @@ function settings_from_preset
250250
local evm_version="$2"
251251

252252
case "$preset" in
253-
legacy-no-optimize) echo "{evmVersion: '${evm_version}', optimizer: {enabled: false}}" ;;
254-
legacy-optimize-evm-only) echo "{evmVersion: '${evm_version}', optimizer: {enabled: true, details: {yul: false}}}" ;;
255-
legacy-optimize-evm+yul) echo "{evmVersion: '${evm_version}', optimizer: {enabled: true, details: {yul: true}}}" ;;
253+
# NOTE: Remember to update `parallelism` of `t_ems_ext` job in CI config if you add/remove presets
254+
legacy-no-optimize) echo "{evmVersion: '${evm_version}', viaIR: false, optimizer: {enabled: false}}" ;;
255+
ir-no-optimize) echo "{evmVersion: '${evm_version}', viaIR: true, optimizer: {enabled: false}}" ;;
256+
legacy-optimize-evm-only) echo "{evmVersion: '${evm_version}', viaIR: false, optimizer: {enabled: true, details: {yul: false}}}" ;;
257+
ir-optimize-evm-only) echo "{evmVersion: '${evm_version}', viaIR: true, optimizer: {enabled: true, details: {yul: false}}}" ;;
258+
legacy-optimize-evm+yul) echo "{evmVersion: '${evm_version}', viaIR: false, optimizer: {enabled: true, details: {yul: true}}}" ;;
259+
ir-optimize-evm+yul) echo "{evmVersion: '${evm_version}', viaIR: true, optimizer: {enabled: true, details: {yul: true}}}" ;;
256260
*)
257261
fail "Unknown settings preset: '${preset}'."
258262
;;

test/externalTests/ens.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ function ens_test
3737
local branch=master
3838
local config_file="truffle.js"
3939
local settings_presets=(
40+
#ir-no-optimize # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
41+
#ir-optimize-evm-only # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
42+
ir-optimize-evm+yul
4043
legacy-no-optimize
4144
legacy-optimize-evm-only
4245
legacy-optimize-evm+yul

test/externalTests/gnosis-v2.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ function gnosis_safe_test
3737
local branch=v2_080
3838
local config_file="truffle-config.js"
3939
local settings_presets=(
40+
#ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
41+
#ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
42+
ir-optimize-evm+yul
4043
#legacy-no-optimize # "Error: while migrating GnosisSafe: Returned error: base fee exceeds gas limit"
4144
legacy-optimize-evm-only
4245
legacy-optimize-evm+yul

test/externalTests/gnosis.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ function gnosis_safe_test
3737
local branch=development_080
3838
local config_file="truffle-config.js"
3939
local settings_presets=(
40+
#ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
41+
#ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
42+
ir-optimize-evm+yul
4043
#legacy-no-optimize # "Stack too deep" error
4144
#legacy-optimize-evm-only # "Stack too deep" error
4245
legacy-optimize-evm+yul

test/externalTests/zeppelin.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ function zeppelin_test
3737
local branch=master
3838
local config_file="hardhat.config.js"
3939
local settings_presets=(
40+
#ir-no-optimize # "YulException: Variable var_account_852 is 4 slot(s) too deep inside the stack."
41+
#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
4043
legacy-no-optimize
4144
legacy-optimize-evm-only
4245
legacy-optimize-evm+yul

0 commit comments

Comments
 (0)