* Add contract keyword arg to IntegrationTest._simple_cli_run
* Remove inline tests from test_eth
* Refactor IntegrationTest.test_eth_regressions to support multi-contract files
* rm unnecessary return, change assert to graceful handle
* Add regression test
* Add regression test
* Correct logic
* Rm unnecessary check
This branch is unnecessary, if this condition is true, then ultimately
the executor will do nothing, and we'll simply return anyway.
* Raise NoAliveStates if no alive states to execute
* docstr update
* Update mult_tx_analysis to handle NoAliveStates
* Fancy
* Update test
* Codeclimate fmt
* fmt
* better readability
* add docstr
* pep8
autopep8 -r -i -a -a manticore
* tox for testing py3k
* minimal codeclimate
* Add correct Code Climate ID
* unignore max line endings since it's set to 160
* more badges
* turn off pep8 in code climate
* need to remove for codeclimate to work right
* re-enable most checks with looser thresholds
* remove unused imports
autoflake --in-place -r manticore
* revert the autoflakes changes
* set tox to only py27 for now
* cache is hardcoded to python 2.7.13
* Comment cleanup
* Try autoflake again
* Add dev environment dependency management to tox.ini
* Remove count/statistics options from tox.ini
Per Dan, these crash pep8 analysis on codeclimate at present
* Revert setstate initialization
* Re-introduce explicit compare for flags
* add back structural comment
* rm unneeeded ` as e`
* bump py tox
* Added a function to generate evm testcases without using callbacks
Possible fix for #782
* The 'message' parameter in generate_testcase should be optional
Requested by @montyly
When particular instruction's implementation raised an `AttributeError` it was catched by `Cpu.execute` and we just saw "oh this instruction is not implemented" while it was, but its implementation was broken.
* Increment default gas
* Do not solve concrete values
* Do not solve concrete values
* Do not solve concrete values
* Remove comment
* Make solver get_value return concrete values untouched - wip
* Handle solver.get_value integers
* fix reporting
* Make solver.get_value return the expression untouched when concrete
* Remove hack; we know `c` can't be an int type
* Revert "Remove hack; we know `c` can't be an int type"
0849094525d7e4cea0295d4be13552dea9c8ad72
* Fix cli --data argument
Previously, it was being ignored :/
* Fix linux output generation
solve.get_value returns back an int, if it concretized the sym var
* Revert "Fix cli --data argument"
2ee740acb20a9d393e1a7984d7ec0e0fe64dbfaf
* Array value configurable. 8,16,32..256 bits (not prefixed to 8)
* Test Array256->256
* Remove old 8 bit assumptions
* Add arrayProxy copy constructors and remove old 8 bit assumptions
* remove old 8 bit assumptions
* remove old 8 bit assumptions
* Better ArrayProxy special case handling
* Fix tests
* Review fixes
* review fix
* fix gas variable
* Review fixes
* Fix vm.gas access
* initial
* Add test for mul checker
* clean
* Rename and clean
* Rm testing
* Better comment, and clean
* Split tests, add more tests
* Clean up stuff, remove unnecessary masking
* fmt
* Add back constrain to make it match the originall buggy situation
* Clean up surrounding code, make it unit testable
* Correct name
* Use individual arguments for helpers
* Clean some unused variables
* Add basic infrastructure
* Add real eth regression tests
* Use check_call
* Suppress stdout
* Make 705 work
* Less error prone way of testing
* Create EVMInstructionException, properly emit did_evm_execute_instruction for insns that trap to the platform
* Emit event before execution of platform handlers. This is because many of the
platform handles actually destroy the cpu (platform.current) via pop_vm.
Clients that receive the event may want to access the cpu though, for example
to see the current PC. so we emit the event right before, so they can do this
* simplify
* move closure below result decl
* Add comment to explain
* Fix typo
* Revert back to pythonic style
It was this way to test emitting the did execute signal here, rather
than in the evm cpu
* Remove inline function definition from critical path
* Add test for events for exception instructions
* Armv7 code refactor
Removes dead imports, makes code style more consistent and a bit more compliant with pep8 (yeah i seems we don't enforce any particular style, but this seems to be a reasonable default for me).
* Review fix: add comment for armv7 _shift
* WIP. issues with setting PC correctly via POP are corrected. issues with pc relative addressing in thumb mode corrected. Still a memory access error, but getting there
* WIP - PC relative addressing in thumb mode now aligns the value for PC per the spec before applying offset
* General thumb mode fixes:
* ldr pc, <operand> now swaps modes and sets pc correctly
* the bl instruction sets the lr appropriately for the current mode
* the two operand forms of the ORR, EOR, and BIC instructions now exist
* tests added for these updates
* comment cleanup
* WIP :more thumb mode instructions, a special case for the sys_brk handled, and a really ugly solution to an internal plumbing problem
* First attempt at concretizing ARM mode
* Handle symbolic mode for ARMv7
* Clean up imports
* Make comment more accurate and use instruction.size
* Collapse _Shift and _Shift_thumb
* Make ARM mode handling more Pythonic
* Improve comment on arm shift register handling and capstone behavior
* Change tagline
* Not sure socket support is a gotcha exactly
* initial docs
* Better docs
* Code blocks
* Links to the api docs
* Improve language
* Doc add_symbolic_file in public API
* Rm stray init
* Added multiprocessing support to generate testcase in finalize
* Improve the code using @feliam suggestions
* Fixed multiprocessing code. Now it really seems to work!™
* whitespace cleanup
* Remove access check from COWMap.__setitem__/__getitem__
* Access checks happen via read/write, so these checks are unecessary.
* Add force parameter to read/write functions
* Introduce to AbstractCpu's accessors
* Add mem force tests
* Apply force param to symbolic operations
* Add symbolic force write tests
* Clean up test
* Fix symbolic write behavior; add tests
* Update makefile; add a list target for testing
* simplify nostdlib example
* Make sendmail example return success
* Add tests to run all examples
* Add some targets to exclude
* Run example scripts; temporarily add a workspace accsesor to mcore
* Optionally read end of main from argv
* Make concolic test more robust
* Clean up Makefile
* Be better with phony targets
* Add run_simple and state_control tests
* verbosity++
* Make sure we fail when we intend to
* Simplify travis_test.sh
* Remove multi_arch_sym