Commit Graph
954 Commits
Author SHA1 Message Date
Sonya Schriner c81883b68a Fixed code climate issues 2020-08-04 11:20:49 -04:00
Sonya Schriner 8464dd762a Draft - Not entirely happy with this 2020-08-04 11:16:14 -04:00
Sonya Schriner 93f8c65cd3 Updated type hints in the variadic models 2020-07-17 15:41:13 -04:00
Sonya Schriner 2a9f114775 Cleaned up type hints some 2020-07-17 15:18:16 -04:00
sschrinerandEric Kilmer 8a8f35c53d Create a model for strncpy (#1770)
* Add strncpy model

* Forgot to remove an edit

* Adding model tests

* Added strncpy c file and created a directory for all string modeling binaries

* Update to argument ordering in manticore/native/models.py

Co-authored-by: Eric Kilmer <[email protected]>

* Removed dead code

Co-authored-by: Eric Kilmer <[email protected]>
2020-07-14 13:17:30 -04:00
feliamandEric Hennenfent da513511e0 Add doc, fix output bugs (#1769)
* Add doc, fix output bugs

* Apply suggestions from code review

Co-authored-by: Eric Hennenfent <[email protected]>

* Readme link

Co-authored-by: Eric Hennenfent <[email protected]>
2020-07-09 12:55:38 -07:00
wolflo 2ce7bb88d5 Update EVM usage example (#1772) 2020-07-09 11:37:05 -03:00
sschrinerandEric Kilmer 14ef9ec099 New working model of strlen (#1725)
* New working model of strlen - Symbolic Test yet to be updated

* Updated modeling test for all symbolic input

* Fixed code climate issue

* Adding binary for new test

* Updated test to use sets for compairison

* Removed length compairison

* Fix argument concretization indexing

* Preserve both model implementation strategies

* Corrected formatting

* Removed whitespace for code climate

* Removed whitespace for code climate

Co-authored-by: Eric Kilmer <[email protected]>
2020-07-07 13:25:13 -04:00
feliam 7d26c9d5b4 Typo (#1768) 2020-07-06 12:46:57 -03:00
feliam e265bceae6 Specialized iterative serialization for Array (#1756)
* Specialized itereative serialization for Array

* lint
2020-06-30 15:15:54 -03:00
Eric Hennenfent a2f072f822 Enable nightly uploads to PyPI (#1757)
* Add Github Actions config

* Handle nightly versioning

* Fix typos in README and PyPI upload

* Make image URL global

* Attempt today's upload

* Install wheel

* Fix indentation

* Only run on schedule

* Use versioned action, add nightly to readme

* Retest upload w/ hard-coded version

* Apparently v1 doesn't parse

* Revert to only scheduled
2020-06-30 11:15:03 -07:00
Eric Hennenfent 4712491d37 Manticore 0.3.4 (#1720)
* Revert 1e23f7ab

Remove psutil as a dependency

* Bump version numb, update changelog

* Re-do updated model not available message

* Update for latest PRs

* Update dates
0.3.4
2020-06-26 18:54:55 -07:00
f39e6ba768 Manticore verifier (#1717)
* Add ONE failing test

* Fix test

* Try fix get-related

* Snapshots

* CC

* Allow snapshooting just from main()

* A test

* Test and fix is_main

* CC

* review

* ismain vs is_running

* is main to is main script

* Remove unused member variable

* initial import manticore verifier

* Fix verifier installation

* clear ready states

* CC and smoke test

* CC

* Increase cov

* Move regression to other

* blkn

* blkn

* Move get related

* CC

* fix concolic

* lint

* DivByZero default to zero

* blkn

* Update manticore/core/smtlib/solver.py

Co-authored-by: Eric Kilmer <[email protected]>

* Update manticore/core/smtlib/constraints.py

Co-authored-by: Eric Kilmer <[email protected]>

* Update manticore/core/smtlib/constraints.py

Co-authored-by: Eric Kilmer <[email protected]>

* remove odd string

* lint

* mypy lint

* Update manticore/core/smtlib/visitors.py

Co-authored-by: Eric Kilmer <[email protected]>

* lint

* Add Docs

* blkn

* blkn

* Replace modulo with masks

* Blacken

* blkn

* fix mypy

* fix mypy

* Add tests for signed LT behavior

* New test

* Fix constant folding

* lint

* blkn

* lint

* Fixes...

* lint

* Unittesting power

* Permisive read_buffer

* Fix optimize

* Preserve precision in constant folding

* Strip left-in print debugging

* blkn

* remove wasm_sym temporarily

* Better simplification for constants

* Add json

* blkn

* Better commmandline args

* blkn

* fix wasm

* Fix

* better commanlining

* REmove get_related from the default path and fix arm test

* blkn

* fix related to tests

* blkn

* Fix bug in test and disable debug messages in Solver

* smtlib config to disable multiple check-sat in newer z3

* Disable log test and fix merging poc vs variable migration

* blkn

* Avoid exception in some callbacks

* can_rais at did_will

* yikes!

* blkn

* Yices found one more states in truffle

* Add a config constant to ignore symbolic balances

* Add a config constant to ignore symbolic balances 2

* Relax truffle state count

* Relax truffle state count 2

* Change cli name and test

* Clear redy states in verifier workspace

* Clear ready states in verifier workspace

* Relative ws path on verifier output. Clean CREATE testcase example

* Blkn

* Improve coverage and funcid solving

* lint

* Better testcase generation at verifier

* Better testcase generation at verifier and typos

* Better output and default re

* Test must revert

* Better output and default re

* move generate_testcase_ex to private method

Co-authored-by: Eric Kilmer <[email protected]>
Co-authored-by: Eric Hennenfent <[email protected]>
2020-06-26 18:12:34 -03:00
Eric Hennenfent 61909a157b Nightly MacOS Tests (#1614)
* Experiment with testing on OSX

Not committing to front-lining OSX support as a feature because there are some fundamental performance concerns, but I would like to see how the tests behave.

* solc --> usr/local/bin

* Don't fail fast

* Require Unicorn 1.0.2rc2

¯\_(ツ)_/¯

* Update Bash on OSX builds

* Use mac solc

* Simpler solidity installation

* Fix wasm tests maybe?

* Swap `ls` args in truffle tests

* Good 'ol printf debugging

* OSX Keystone install

* Truffle test miscounting fix?

* Add unzipping timeout

* Remive timeout _and_ `yes`

* Allow output check to work on OSX

* Add list wrapper to filter

* Remove print statements

* yolo keystone via homebrew

* Try again w/ Keystone Brew

* typo

* Create osx.yml

* Revert to Master's ci.yml

* Update to checkout@v2 universally

* Save checkout version change for another PR

It maybe breaks codecov?

* Add Truffle Tests

* Fix Truffle

* Make native an option

* See if native works?

* Revert "See if native works?"

This reverts commit ce90d8bcb0.

* Replace actions content w/ script

* Update number of Truffle tests

* Force working directory

* Remove shebang, fix YAML

* Fix incorrect path to script?

* Why are the docs always wrong

* YAML syntax

* Fix usage of GITHUB_WORKSPACE

* Forget the workspace, just copy the script to the root

* Revert workspace path changes

* Fix VM test generation

* Whitespace fixes

* Only run on a schedule

* Install Yices and CVC4
2020-06-23 12:09:16 -07:00
feliam 166b0415c8 Remove/procrastinate solver query in ether leak detector (#1727)
* Remove/procrastinate solver query in etherleak detector

* blkn
2020-06-22 10:42:14 -03:00
099dc47b69 Fix constant folding & constraint set slicing (#1706)
* Add ONE failing test

* Fix test

* Try fix get-related

* Move regression to other

* blkn

* blkn

* Move get related

* CC

* fix concolic

* lint

* DivByZero default to zero

* blkn

* Update manticore/core/smtlib/solver.py

Co-authored-by: Eric Kilmer <[email protected]>

* Update manticore/core/smtlib/constraints.py

Co-authored-by: Eric Kilmer <[email protected]>

* Update manticore/core/smtlib/constraints.py

Co-authored-by: Eric Kilmer <[email protected]>

* remove odd string

* lint

* mypy lint

* Update manticore/core/smtlib/visitors.py

Co-authored-by: Eric Kilmer <[email protected]>

* lint

* Add Docs

* Replace modulo with masks

* Blacken

* blkn

* fix mypy

* fix mypy

* Add tests for signed LT behavior

* New test

* Fix constant folding

* lint

* lint

* lint

* Unittesting power

* Permisive read_buffer

* Preserve precision in constant folding

* Strip left-in print debugging

* fix wasm

* Fix

* REmove get_related from the default path and fix arm test

* blkn

* fix related to tests

* blkn

* Fix bug in test and disable debug messages in Solver

* smtlib config to disable multiple check-sat in newer z3

* Disable log test and fix merging poc vs variable migration

* blkn

* Avoid exception in some callbacks

* can_raise at did_will

* slightly better z3 onfiguration

* lint

Co-authored-by: Eric Kilmer <[email protected]>
Co-authored-by: Eric Hennenfent <[email protected]>
2020-06-16 21:59:32 -03:00
bdbd0391c8 Symbolic model for strcpy (#1681)
* Working copy for strcpy - without symbolic input

* Corrected null term error

* Needs to be tested but general algorithm idea for handling symbolic input

* Updated according to feedback

* Beginning of strcpy tests

* Revising strcpy algorithm - realised it was flawed

* This should be a more correct way of handling symbolic bytes. Needs testing

* Get rid of redundant code

* Fixed another typo

* Update manticore/native/models.py

Co-Authored-By: Eric Kilmer <[email protected]>

* Clarified and updated comments

* Fixed some errors in model while working on tests

* Progress on tests

* Found typo in models

* Removed unnecassary whitespace

* Added some helper functions for tests and to clean things up

* Added comments for helper functions

* WIP: current state of strcpy tests

* Updated type hints from Expression to BitVec

* Fixed linter complaints

* Updated strcpy return type to make linter happy

* Added some helper properties to expression BitVecITE

* Overwrote equal op in ArraySelect

* Fixed formatting in expression

* Almost done just needs some cleaning

* Attempt at overriding __eq__ again

* Cleaned up tests some still have unresolved __eq__ issues

* Removed stuff from expression and updated test_models.py

* Removed stuff from expression and updated test_models.py

* Basicly done probably needs some more comments for clarity

* Cleaned up the tests a little

* Corrected linter error and added more comments to strcpy model functions

* Remove duplicated word in comment

Co-authored-by: Eric Kilmer <[email protected]>

* Update manticore/native/models.py

Co-authored-by: Brad Larsen <[email protected]>

* Update manticore/native/models.py

Co-authored-by: Brad Larsen <[email protected]>

* Update tests/native/test_models.py

Co-authored-by: Brad Larsen <[email protected]>

* Updates according to feedback

* Swapped can_be_true and must be true

* Updates for feedback

* Forgot to lint

* Fixed some typos

* Largely simplified ITE being built

* Forgot to lint

* This is messy but seems to be concretizing to the correct states

* Very very messy state of the code before attempting to concretize on every possible NULL

* Cleaned up model with forking on every possible NULL

* Removed trailing whitespace for CodeClimate

* Added state.context for offset value back

* New symbolic test with regex for expected output

* New symbolic test with regex for expected output

* Updated for mypy

* Updated comments in tests

* Updated cant_be_null to cannot_be_null

* Corrected docstring location for _test_strcpy

* Add break for efficiency

* Added compiler information and source file

* Updated regex to use raw strings

Co-authored-by: Eric Kilmer <[email protected]>
Co-authored-by: Brad Larsen <[email protected]>
2020-06-09 17:12:19 -04:00
feliamandEric Kilmer ddec477dbd Rollback to support yices again (#1714)
* Rollback to support yices again

* CC

* Test yices

* Better get-value handling

* Z3/CVC4/YICES

* CC

* Yices/CVC4

* CC

* Default yices

* Default debug level fix

* Quick auto solver

* shutil.which

* CC

* Default yices for testing

* Remove old commented out code

* Update manticore/core/smtlib/solver.py

Co-authored-by: Eric Kilmer <[email protected]>

* Update manticore/core/smtlib/solver.py

Co-authored-by: Eric Kilmer <[email protected]>

* Remove unused class

* Update manticore/core/smtlib/solver.py

Co-authored-by: Eric Kilmer <[email protected]>

* Update manticore/core/smtlib/solver.py

Co-authored-by: Eric Kilmer <[email protected]>

* Readme hack

* CC/lint

* Fix typing

* z3 back to the rodeo

* lint

* Fancy optimize

* Fix lint

* CC reviewed

Co-authored-by: Eric Kilmer <[email protected]>
2020-06-09 16:16:18 -03:00
feliam 7f5f12c5a7 Fix default output space when workspace is in mem: (#1724) 2020-06-09 11:37:38 -03:00
4495b6f03e VMTests tests for istanbul (#1676)
* New upstream auto-VMTests tests for istanbul

* Removed redundant tests

* bugfix

* Reset CI

* Debug CI 1

* debug CI

* wakey wakey GitHub Actions

* Poke GH

* Fix detector

* New CI weaky weaky

* Change default smtlib max memory usage weaky weaky

* ci weaky waky

* ci weaky waky

* CI waky weaky

* Fix test_general weaky weaky

* Fix ethtests. weaky waky

* Unittest driven bugfixes. weaky waky

* Avoid check-sat in the middle of a solving. weaky wakey

* Fix config. weaky wakey

* Reduce queries in IO detector

* CC

* CC

* fix nativve tests

* CC and solver defaults

* merge. weaky waky

* Fixing tests

* Remove debug print

* Fix in DetectUninitializedMemory

* Change truffle test state count

* CC

* Better forking on failed transactions

* CC

* Fix truffle tst state count

* Improve z3 speed

* Fix truffle test state count

* Change default gas concretization in CALL

* Better logging at fork

* Insane commit to fix several bugfixes and refator stuff

* black

* Fix selfdestruct test

* Fix some unittests

* Default to bytes fo constant calldata

* Fix tests

* Better doc

* https://github.com/trailofbits/manticore/pull/1676/files#r426927762

* https://github.com/trailofbits/manticore/pull/1676/files#r426946198

* Leave native alone and fix pyevmasm dep

* Update manticore/platforms/evm.py

Co-authored-by: Eric Hennenfent <[email protected]>

* Update manticore/platforms/evm.py

Co-authored-by: Eric Hennenfent <[email protected]>

* isSeven

* OPTI/PESI

* Truffle optimistic

* truffle fix

* Truffle state count

* CC

* Fix tests PESI/OPTI

* Update manticore/core/state.py

Co-authored-by: Samuel E. Moelius <[email protected]>

* Better policy naming

* Update manticore/platforms/evm.py

Co-authored-by: Samuel E. Moelius <[email protected]>

* Update manticore/ethereum/manticore.py

Co-authored-by: Samuel E. Moelius <[email protected]>

* Update manticore/platforms/evm.py

Co-authored-by: Samuel E. Moelius <[email protected]>

* PESi PESSI

* blkn

* weaky

* wakey wakey

* blkn

* unreachable

* Fix state count in checkpoint test (merge)

* remove unused exception var

Co-authored-by: Eric Hennenfent <[email protected]>
Co-authored-by: Samuel E. Moelius <[email protected]>
2020-06-04 19:27:59 -03:00
feliamandEric Hennenfent 3650e577bd Snapshots & is_main (#1710)
* Snapshots

* CC

* Allow snapshooting just from main()

* A test

* Test and fix is_main

* CC

* review

* ismain vs is_running

* is main to is main script

* Remove unused member variable

* Fix is main variable

* Update manticore/core/manticore.py

Co-authored-by: Eric Hennenfent <[email protected]>

* review

* blkn

* Betteer Exception handling

* Lint and test

Co-authored-by: Eric Hennenfent <[email protected]>
2020-06-02 18:03:01 -03:00
Eric Hennenfent 6747143eca Fix Black (#1718)
* Use merge SHA instead of head

Github Actions doesn't update the head variable despite the checkout action merging the active branch into `master`, so the commit range specified was invalid

* Start from common ancestor

* Omit explicit SHA

* Lint HEAD instead of merge

* Manually fetch base SHA

* Print the names of files to be diffed

* Update ci.yml

* Modify a Python file

* Blacken everything that was missing

The modified files got missed due to black not properly running on our CI
2020-05-28 12:54:31 -07:00
Eric Hennenfent 2c90ee07c9 Use CoverageRC, Make CodeCov Less Aggressive (#1705)
* Experimental coverage changes

Tells coverage.py to record coverage for individual test cases, and makes CodeCov tolerate a small drop in overall coverage percentage to account for nondeterministic gas tests.

* Use workspace

* Remove explicit concurrency type declaration

Appears to break use of subprocess in integration tests

* Eliminate dynamic context

* Make all CI respect rcfile

* Use environment variable
2020-05-19 14:58:31 -07:00
feliam c39f870f59 Fix plugin enable/disable magic (#1708)
* FIx enable/disable magic

* CC

* Test enable/disable

* Remove duplicated code
2020-05-19 14:56:53 -07:00
feliam c2b847a460 Add a warning when selected no methods for inclusion (#1707)
* Add a warning when selected no methods for inclusion

* CC
2020-05-19 14:05:47 -03:00
Eric Hennenfent 8e6c481ee9 Remove duplicated entries (#1709)
Github automatically parses the issue templates and adds them to the config file, so they don't need to be included here.
2020-05-19 08:42:44 -07:00
Eric Hennenfent 24161e4771 Blacken (#1711) 2020-05-18 16:49:08 -07:00
Eric KilmerandBrad Larsen 704007e0c3 Fix symbolic syscall arg concretization (#1697)
* Rewind cpu when ConcretizeArgument is raised in system call

* Remove unused ConcretizeSyscallArgument

* Add test for symbolic system call argument

* Roll back PC during handling of ConcretizeArgument

This accomplishes the same thing as before but now the movement is done
in the parent state instead of children states

* Statically link test executable

* Use simple checkpoint and rollback for PC

* Rework checkpoint and rollback in exception-handling

* Create rollback function in State

This is to make sure we don't miss anything when adding future values

* Define only one local variable for exception data

* Remove unused import

* Less verbosity in test

* Rollback in parent state instead of children states

* Always rollback state on Concretize*

* Use typing.NamedTuple

Thank you @bradlarsen

* Use local checkpoint variable

We don't access checkpoint data anywhere else aside from the `execute`
function

* Add type hint to test

Co-authored-by: Brad Larsen <[email protected]>

* Use more specific language in test comment

Co-authored-by: Brad Larsen <[email protected]>

* Remove outdated function name in comment

* Fix missed refactor

* Remove unneeded testing changes after refactor

Co-authored-by: Brad Larsen <[email protected]>
2020-05-18 11:14:34 -07:00
Eric Hennenfent bf79b805ab Update README, Add Issue Templates (#1685)
* Add canned issue templates

* Fix URL params

* Update the README

* Add CLA

* Update Youtube URL

* Remove sudo from example readme

* Reword dependencies in main readme

* Replace mkvirtualenv with default version
2020-05-15 11:28:01 -07:00
feliam 55e2486f47 Fix inheritance magic and add plugin enable/disable (#1696)
* Fix inheritance magic nonsens and add plugin enable/disable

* CC

* Better Plugin default

* Fix enabled default

* Trying to generalize enable/disable for plugins

* Merger is the only plugin using locked context correctly

* Fix plugin context name

* text to enum
2020-05-13 10:44:58 -07:00
feliam 4f7027bf8d Add hashing to constraintSets (#1703)
* Add hashing to constraintSets

* CC

* fix bytearray related tests

* Change get_related default
2020-05-13 10:07:39 -07:00
Samuel E. Moelius 5a707f1bc8 Reduce log messages (#1700)
* Change concretization log message from info to debug.

* Deprioritize helper (e.g., serialization) log messages.
2020-05-12 13:15:22 -07:00
sschriner 7a5f0c7f07 Updated Proc error message to be more informative (#1704) 2020-05-12 14:56:28 -04:00
Samuel E. Moelius 4cccd4d66b Move states that selfdestruct to the ready queue. (#1699) 2020-05-12 11:28:24 -07:00
Samuel E. Moelius 9299033904 Reduce concrete hash log messages. (#1695) 2020-05-12 11:24:20 -07:00
Eric HennenfentandBrad Larsen b1d93d2beb Remove Keystone from existing tests (#1684)
* Cache generated ASM

* Never install Keystone on the CI

* Fix dict retreival one-liner

arguments aren't lazily evaluted, so ks_assemble always got called

* Apply suggestions from code review

Docstrings and type hints

Co-authored-by: Brad Larsen <[email protected]>

* Update tests/native/test_armv7cpu.py

Missed one

Co-authored-by: Brad Larsen <[email protected]>

Co-authored-by: Brad Larsen <[email protected]>
2020-05-11 08:42:47 -07:00
Eric Kilmer 90b4d454b0 Change URL for WASM spec (#1702)
* Change URL for WASM spec

* Fix URL in other place
2020-05-11 08:42:12 -07:00
Brad Larsen cc77acee41 Overhaul Linux file emulation (#1673)
Overhaul Linux file emulation.

Previously, open file descriptors could be mapped to any of the `File`, `Directory`, `SocketDesc`, `Socket`, and `ProcSelfMaps` classes, which didn't share a common supertype, and which didn't have consistent interfaces.

Now, each of these classes implements the `FdLike` abstract base class, which specifies a number of methods.

This overhaul additionally fixes several issues with the Linux support code:

- A program that tried to ioctl on a socket would crash Manticore
- In several places, the error code returned by a failing syscall was incorrect
- Many file descriptor operations could crash Manticore when used on an already-closed descriptor
- Manticore state serialization / deserialization was incorrect for file descriptor types other than File or Socket
- In certain cases, `sys_open` / `sys_openat` could crash Manticore when trying to log a debug message
- In certain cases, `sys_readv` could crash Manticore, instead of correctly returning a negative int value
- `sys_sendfile` was broken due to a variable name typo
- In several places in Manticore’s Linux support code, incorrect type hints were present
- In some places, an exception would attempt to be raised, but that itself would crash due to a missing import.

This commit adds two more example / integration test programs.

Additionally, this adds a helper for working with Python abstract base classes.  This helper lets you declare on a class, via a decorator, that the class is expected to have no unimplemented abstract methods.  If this is not true at runtime, a `TypeError` is thrown.  Without this decorator, you will only discover that a class has unimplemented abstract methods when you try to _instantiate_ that class. This may be much, much later than at class creation time, or perhaps not at all, depending on your code coverage.

Thanks to Eric Kilmer <[email protected]> for review!
2020-05-08 13:57:41 -04:00
feliamandEric Hennenfent f3dcd63a3f Try getting more coverage from truffle-test (#1694)
* Try getting more coverage from truffle-test

* Update codecov.yml

Co-authored-by: Eric Hennenfent <[email protected]>

* Try getting more coverage from truffle-test

* Update ci.yml

* Fix truffle tst state count

* Generate coverage file

Co-authored-by: Eric Hennenfent <[email protected]>
2020-05-05 13:21:46 -07:00
Samuel E. Moelius 4746e5d9a2 Eliminate deprecation warning in solidity_create_contract. (#1692) 2020-05-05 10:10:50 -07:00
Langston BarrettandEric Hennenfent 0bdcea4f78 Fix a few documentation typos in ManticoreBase (#1687)
* Fix a few documentation typos in ManticoreBase

* Fix documentation in ManticoreBase: 'vervosity' -> 'verbosity'

Co-authored-by: Eric Hennenfent <[email protected]>
2020-05-04 15:41:56 -07:00
Langston BarrettandEric Hennenfent 2b04eeee5c Add set_verbosity to the documentation (#1688)
Co-authored-by: Eric Hennenfent <[email protected]>
2020-05-04 15:41:09 -07:00
Samuel E. Moelius 4b26ced556 Adjust z3 options. (#1691) 2020-05-04 14:32:01 -07:00
Samuel E. MoeliusandEric Hennenfent ad5c48bd51 Improve concretize log messages (#1686)
* Improve concretize log messages.

* Update manticore/core/worker.py

Co-authored-by: Eric Hennenfent <[email protected]>

Co-authored-by: Eric Hennenfent <[email protected]>
2020-05-04 14:30:03 -07:00
feliam 894d22efb5 Move truffle to its own CI type (#1693)
* Move truffle thing to it own CI

* Cosmetic changes to ci
2020-05-04 16:59:00 -03:00
Eric Hennenfent 96bfc80ea0 Remove default gas limit (#1689)
Reverts one of the changes from #1652 to fix the sporadically-failing `test_integer_overflow_multitx_onefunc_feasible` test in `ethereum_bench`
2020-05-01 10:23:21 -07:00
feliam 522896264c Better argument names in manticoreEVM api (#1652)
* Better argument names in manticoreEVM api

* blkn

* bugfix
2020-04-28 12:48:14 -07:00
Eric Hennenfent 8a77ad4680 Blacken non-compliant files (#1680) 2020-04-24 13:57:59 -07:00
Samuel E. Moelius 2dfba13fbf Disable core __get_related logic (#1674)
There is a flaw in how __get_related works: when called on certain
unsatisfiable sets, it can return a satisfiable one. The flaw arises when:
  * self consists of a single constraint C
  * C is the value of the related_to parameter
  * C contains no variables
  * C is unsatisfiable
Since C contains no variables, it is not considered "related to" itself and is thrown out
by __get_related. Since C was the sole element of self, __get_related returns the empty
set. Thus, __get_related was called on an unsatisfiable set, {C}, but it returned a
satisfiable one, {}.
2020-04-24 10:22:16 -07:00
Eric Hennenfent 1e82ec457c Make CodeCov wait for reports from all CI jobs (#1661)
* Make CodeCov wait for reports from all CI jobs

This should prevent the red 'X' from appearing as soon as the first job finishes.

* Make CI step fail if codecov fails to upload

* Run examples with coverage

* Copy coverage file appropriately

* Fix path to coverage file

* Add comment about n builds

* Disable failing CI upon error.
2020-04-23 13:57:09 -07:00