Revision 1907968c1fc78218ec612eeef76197d70e8b3a26 authored by feliam on 31 August 2018, 20:42:02 UTC, committed by GitHub on 31 August 2018, 20:42:02 UTC
* DAO detector + bugfixes

* The actual benchmark tests

* The actual benchmark tests

* CC

* Experiment reporting the finding at a JUMPI

* Fix taint. Detect returned overflowded data

* DAO -> Reentrancy

* DAO -> reentrancy, C -> Benchmark

* DAO -> reentrancy, C -> Benchmark

* Allow function names to have numbers

* Fix contract names in benchmark

* Fix contract names in benchmark

* Move default plugin registration

* Better regexp

* Fix minimal_bytecode example

* Fix Array Slice and test

* add tests

* correct other bug

* implement bytesM

* BROKEN partial progress

* need bytearray here

* rm cmt

* add basic tests for bytesM and bytes symbolic

* correct bytes symbolic test

* Refactor, clean bytesM handling

* Add initial symbolic 'bytes' handling

* refactor tests

* Unify symbolic/concrete bytes handling in bytesM/bytes

* Rm import

* Rm debug assert

* cc

* Visitor/migrate/simplify fixes to make the seth refactor pass

* Fix concolic?

* Fix concolic?

* CC

* bytesM fix

* Fix address and caller concretization on symb tx

* Fix/refactor symbolic address/caller concretization

* Fix caller concretization

* Fix expression visiting

* Fix account policy refactor

* Accept numbers in function names abitypes

* Simplify installation instructions to recommend install manticore only for the current user

* Run some tests in parallel (#970)

This PR splits the current test runner into three environments: 

1. Linux examples
2. Ethereum tests
3. Remaining tests

to faster complete each testing run. Ethereum tests include a number of integration tests that execute scripts to completion, which takes a while. We run them concurrently with other tests to save on execution time. The split is done by naming Ethereum tests differently (`eth_*.py` vs `test_*.py`) and updating what pattern unittest's `discover` uses.

This change also updates the installation script and chooses to forego installing Keystone for EVM tests as it takes a while, and it adds a `setup.cfg` config file so that Nose finds the eth tests as well by default.

* Be less verbose when testing

* Fix slicing wrongly reference to proxyArray. Fix #912

* Only export human/external tx in the testcase (#972)

* Make ManticoreEVM.make_symbolic_value size adjustable (#974)

* Make size adjustable

* Default to 256

* Dev evm yolo fix gas (#975)

* Fix gas stipend on CALL and check dao

* Add order dependence 1

* Going linter. Report/Detect that thing when code does not check returned value

* cleaner example of fail

* Update retval_crazy.sol

* new solc for travis

* CC

* Remove duplicated ReentrancyDetector

* POrt to py3

* POrt to py3

* P0rt to py3

* CC

* Be mega forgiving on global expression usage - EVM

* Tests doc

* Refactor new_bitvector api

* function id to binary

* Fix neW_bool

* CC

* rename avoid_collisions collision

* rename avoid_collisions collision

* migrate on state.constraint too..

* Migration bugfixes

* CC bugfixes

* invalid assert removed

* move rep code to method

* unittets fixes and CC

* CC

* Refactor result_ref out in favor of change_last_result()

* CC

* reviewing the codes

* CC

* Change variable names

* typo

* Basic refactors and output enhancements

* Some minid docstrings and a unittest

* Some mini docstrings and a unittest

* Add migration integration testion

* Keep fuzz-refactoring it

* CC

* Bugfixfixfixfix

* CC

* re refactor mig algorithm

* better cleaner stronger. (reviewing)

* CC

* Small refactor and Fix strange strcmp test.

* CC

* funtion selector abinary

* bugfix.. waiting for migreation PR

* convenient tx abi parsing func

* convenient tx abi parsing func

* convenient tx abi parsing func

* convenient tx abi parsing func

* re re refactor for readability

* CC

* rev

* CC

* forgoten var

* CC

* CC

* review

* typo

* CC

* review

* Adding single example to sha3 trick when there are not know examples

* CC

* review

* CC

* Forgotten rollback

* CC
1 parent 3d937ae
Raw File
.travis.yml
dist: trusty
sudo: required
os:
  - linux
language: python
python:
  - 3.6.5

stages:
  - prepare
  - test
  - submit

env:
  global:
    - CC_TEST_REPORTER_ID=db72f1ed59628c16eb0c00cbcd629c4c71f68aa1892ef42d18c7c2b8326f460a
    - JOB_COUNT=2 # Two jobs generate test coverage
    - PYTHONWARNINGS="ignore::ResourceWarning" # Ignore unclosed file warnings
  matrix:
    - TEST_TYPE=examples
    - TEST_TYPE=tests
    - TEST_TYPE=eth

branches:
  only:
  - master
  - /^(?!wip-).+$/

cache:
  pip: true
  directories:
  - $HOME/virtualenv/python3.6.5/lib/python3.6/site-packages
  - $HOME/virtualenv/python3.6.5/bin/

jobs:
  include:
    - stage: prepare
      env: TEST_TYPE=env
      script:
        - ./cc-test-reporter before-build
      after_success:
    - stage: submit
      env: TEST_TYPE=env
      script:
        - true
      after_script:
        - aws s3 sync "s3://manticore-testdata/coverage/$TRAVIS_COMMIT" coverage/ 
        - ./cc-test-reporter sum-coverage --output - --parts $JOB_COUNT coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --input -

install:
  - scripts/travis_install.sh $TEST_TYPE

script:
  - scripts/travis_test.sh $TEST_TYPE

after_success:
  - ./cc-test-reporter format-coverage -t coverage.py -o "coverage/codeclimate.$TEST_TYPE.json"
  - aws s3 sync coverage/ "s3://manticore-testdata/coverage/$TRAVIS_COMMIT"

back to top