diff --git a/.circleci/config.yml b/.circleci/config.yml index 7d9cc9778..9e4250516 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -136,6 +136,24 @@ jobs: command: | test/externalTests/zeppelin.sh /tmp/workspace/soljson.js || test/externalTests/zeppelin.sh /tmp/workspace/soljson.js + test_emscripten_external_colony: + docker: + - image: circleci/node:10 + environment: + TERM: xterm + steps: + - checkout + - attach_workspace: + at: /tmp/workspace + - run: + name: Install test dependencies + command: | + sudo apt-get -qy install lsof + - run: + name: External ColonyNetworks tests + command: | + test/externalTests/colony.sh /tmp/workspace/soljson.js || test/externalTests/colony.sh /tmp/workspace/soljson.js + build_x86_linux: docker: - image: buildpack-deps:bionic @@ -473,14 +491,6 @@ workflows: <<: *build_on_tags requires: - build_emscripten - - test_emscripten_external_zeppelin: - <<: *build_on_tags - requires: - - build_emscripten - - test_emscripten_external_gnosis: - <<: *build_on_tags - requires: - - build_emscripten - build_x86_linux: *build_on_tags - build_x86_linux_cxx17: *build_on_tags - build_x86_clang7_asan: *build_on_tags @@ -523,8 +533,13 @@ workflows: <<: *build_on_tags requires: - build_emscripten + - test_emscripten_external_colony: + <<: *build_on_tags + requires: + - build_emscripten - build_x86_linux_ossfuzz: *build_on_tags - test_x86_ossfuzz_regression: <<: *build_on_tags requires: - build_x86_linux_ossfuzz + diff --git a/test/externalTests/colony.sh b/test/externalTests/colony.sh new file mode 100755 index 000000000..9745d10ce --- /dev/null +++ b/test/externalTests/colony.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# ------------------------------------------------------------------------------ +# This file is part of solidity. +# +# solidity is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# solidity is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with solidity. If not, see +# +# (c) 2019 solidity contributors. +#------------------------------------------------------------------------------ +source test/externalTests/common.sh + +verify_input "$1" +SOLJSON="$1" + +function install_fn { yarn; git submodule update --init; } +function compile_fn { yarn run provision:token:contracts; } +function test_fn { yarn run test:contracts; } + +function colony_test +{ + OPTIMIZER_LEVEL=3 + FORCE_ABIv2=false + setup https://github.com/JoinColony/colonyNetwork.git develop master + run_install install_fn + + CONFIG=$(find_truffle_config) + + cd lib + rm -Rf dappsys + git clone https://github.com/erak/dappsys-monolithic.git -b callvalue-payable-fix dappsys + cd .. + + run_test compile_fn test_fn +} + +external_test ColonyNetworks colony_test diff --git a/test/externalTests/common.sh b/test/externalTests/common.sh index 039e4e2d6..ebcdaa9a8 100644 --- a/test/externalTests/common.sh +++ b/test/externalTests/common.sh @@ -218,7 +218,9 @@ function run_test clean force_solc_settings "$CONFIG" "$optimize" "petersburg" # Force ABIEncoderV2 in the last step. Has to be the last because code is modified. - [[ "$optimize" =~ yul ]] && force_abi_v2 + if [ "$FORCE_ABIv2" = true ]; then + [[ "$optimize" =~ yul ]] && force_abi_v2 + fi printLog "Running compile function..." $compile_fn