externalTests: Add extra viaIR runs

This commit is contained in:
Kamil Śliwak 2021-12-09 15:35:16 +01:00
parent d304c84432
commit 3ec05d02b5
7 changed files with 25 additions and 5 deletions

View File

@ -1037,8 +1037,9 @@ jobs:
docker: docker:
- image: circleci/node:<<parameters.nodejs_version>> - image: circleci/node:<<parameters.nodejs_version>>
resource_class: <<parameters.resource_class>> resource_class: <<parameters.resource_class>>
# NOTE: Each external test does 3 separate compile&test runs # NOTE: Each external test runs up to 6 independent settings presets. If parallelism is higher than
parallelism: 3 # actual preset count, some runs will exit immediately. If it's lower, some runs will get more than one preset.
parallelism: 6
environment: environment:
TERM: xterm TERM: xterm
COMPILE_ONLY: <<parameters.compile_only>> COMPILE_ONLY: <<parameters.compile_only>>

View File

@ -37,6 +37,9 @@ function colony_test
local branch=develop_080 local branch=develop_080
local config_file="truffle.js" local config_file="truffle.js"
local settings_presets=( local settings_presets=(
#ir-no-optimize # Compiles but tests run out of gas
#ir-optimize-evm-only # Compiles but tests run out of gas
ir-optimize-evm+yul
#legacy-no-optimize # Compiles but tests run out of gas #legacy-no-optimize # Compiles but tests run out of gas
#legacy-optimize-evm-only # Compiles but tests run out of gas #legacy-optimize-evm-only # Compiles but tests run out of gas
legacy-optimize-evm+yul legacy-optimize-evm+yul

View File

@ -250,9 +250,13 @@ function settings_from_preset
local evm_version="$2" local evm_version="$2"
case "$preset" in case "$preset" in
legacy-no-optimize) echo "{evmVersion: '${evm_version}', optimizer: {enabled: false}}" ;; # NOTE: Remember to update `parallelism` of `t_ems_ext` job in CI config if you add/remove presets
legacy-optimize-evm-only) echo "{evmVersion: '${evm_version}', optimizer: {enabled: true, details: {yul: false}}}" ;; legacy-no-optimize) echo "{evmVersion: '${evm_version}', viaIR: false, optimizer: {enabled: false}}" ;;
legacy-optimize-evm+yul) echo "{evmVersion: '${evm_version}', optimizer: {enabled: true, details: {yul: true}}}" ;; ir-no-optimize) echo "{evmVersion: '${evm_version}', viaIR: true, optimizer: {enabled: false}}" ;;
legacy-optimize-evm-only) echo "{evmVersion: '${evm_version}', viaIR: false, optimizer: {enabled: true, details: {yul: false}}}" ;;
ir-optimize-evm-only) echo "{evmVersion: '${evm_version}', viaIR: true, optimizer: {enabled: true, details: {yul: false}}}" ;;
legacy-optimize-evm+yul) echo "{evmVersion: '${evm_version}', viaIR: false, optimizer: {enabled: true, details: {yul: true}}}" ;;
ir-optimize-evm+yul) echo "{evmVersion: '${evm_version}', viaIR: true, optimizer: {enabled: true, details: {yul: true}}}" ;;
*) *)
fail "Unknown settings preset: '${preset}'." fail "Unknown settings preset: '${preset}'."
;; ;;

View File

@ -37,6 +37,9 @@ function ens_test
local branch=master local branch=master
local config_file="truffle.js" local config_file="truffle.js"
local settings_presets=( local settings_presets=(
#ir-no-optimize # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
#ir-optimize-evm-only # "YulException: Variable var_ttl_236 is 1 slot(s) too deep inside the stack."
ir-optimize-evm+yul
legacy-no-optimize legacy-no-optimize
legacy-optimize-evm-only legacy-optimize-evm-only
legacy-optimize-evm+yul legacy-optimize-evm+yul

View File

@ -37,6 +37,9 @@ function gnosis_safe_test
local branch=v2_080 local branch=v2_080
local config_file="truffle-config.js" local config_file="truffle-config.js"
local settings_presets=( local settings_presets=(
#ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
#ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
ir-optimize-evm+yul
#legacy-no-optimize # "Error: while migrating GnosisSafe: Returned error: base fee exceeds gas limit" #legacy-no-optimize # "Error: while migrating GnosisSafe: Returned error: base fee exceeds gas limit"
legacy-optimize-evm-only legacy-optimize-evm-only
legacy-optimize-evm+yul legacy-optimize-evm+yul

View File

@ -37,6 +37,9 @@ function gnosis_safe_test
local branch=development_080 local branch=development_080
local config_file="truffle-config.js" local config_file="truffle-config.js"
local settings_presets=( local settings_presets=(
#ir-no-optimize # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
#ir-optimize-evm-only # "YulException: Variable var_call_430_mpos is 1 slot(s) too deep inside the stack."
ir-optimize-evm+yul
#legacy-no-optimize # "Stack too deep" error #legacy-no-optimize # "Stack too deep" error
#legacy-optimize-evm-only # "Stack too deep" error #legacy-optimize-evm-only # "Stack too deep" error
legacy-optimize-evm+yul legacy-optimize-evm+yul

View File

@ -37,6 +37,9 @@ function zeppelin_test
local branch=master local branch=master
local config_file="hardhat.config.js" local config_file="hardhat.config.js"
local settings_presets=( local settings_presets=(
#ir-no-optimize # "YulException: Variable var_account_852 is 4 slot(s) too deep inside the stack."
#ir-optimize-evm-only # "YulException: Variable var_account_852 is 4 slot(s) too deep inside the stack."
#ir-optimize-evm+yul # Compiles but tests fail. See https://github.com/nomiclabs/hardhat/issues/2115
legacy-no-optimize legacy-no-optimize
legacy-optimize-evm-only legacy-optimize-evm-only
legacy-optimize-evm+yul legacy-optimize-evm+yul