Joe Ranweiler
4f711da986
Use DeepState_CurrentTestRun in take-over test case replays
...
- Map shared memory for `DeepState_CurrentTestRun`
- For non-crashing forked test runs, inspect the above to figure out
what happened. In particular, this supports `CHECK` and soft failures.
2018-02-21 18:52:23 -08:00
Joe Ranweiler
d4dc9eaa01
Add struct for info about single test runs, update in global setters
...
Instead of exit codes, we will use the global instance of this (shared
with a parent process) to determine the result of forked test runs.
2018-02-21 18:49:42 -08:00
Joe Ranweiler
9d47f21f5a
Hide mutation of test globals behind internal functions
2018-02-21 17:17:43 -08:00
Joe Ranweiler
341c2da0f8
Fix type of --take_over flag
2018-02-21 16:56:12 -08:00
Joe Ranweiler
c09feec114
Call DeepState_Begin() for each forked take-over test case
2018-02-20 15:52:14 -08:00
Joe Ranweiler
23dbbbdc57
Log all test run result cases in native take-over
...
Warning: this does not work correctly with tests that soft fail, e.g.
via a `CHECK` assertion. This is because the soft failures only update
the child's `DeepState_TestFailed` global variable, but do not exit.
What we will soon do is share memory with the child process, and derive
the "test result" from that shared memeory.
2018-02-20 15:43:34 -08:00
Joe Ranweiler
a81f816d89
If in take-over mode, exit on fatal error
...
In take-over mode, the "test" is the entire binary being executed as a
child process. So, we want to exit, rather than trying to `longjmp()` to
`DeepState_ReturnToRun`, which was never initialized.
2018-02-20 15:43:34 -08:00
Joe Ranweiler
065c97c2c0
Add --take_over flag to native binaries
2018-02-20 15:43:34 -08:00
Joe Ranweiler
661c600d2b
Add impl of native takeover test case replay
2018-02-20 15:43:34 -08:00
Joe Ranweiler
93a95b0e96
Use native fake test and file name that matches executors
2018-02-20 15:43:34 -08:00
Joe Ranweiler
45fcfe0921
Add DeepState_TakeOver() interface
2018-02-20 10:31:29 -08:00
Joe Ranweiler
23af5b562d
Add DeepState_Crash() hook
2018-02-14 12:22:38 -08:00
Joe Ranweiler
ac7e57a833
Consistently stub test case save hooks
2018-02-14 10:24:15 -08:00
Joe Ranweiler
ab43f75361
Add hook to save crashing tests
2018-02-14 10:24:15 -08:00
Joe Ranweiler
dd8a1c6608
Use external linkage for global input buffer
...
This is to support running saved auto-generated test cases.
2018-02-08 16:07:35 -08:00
Joe Ranweiler
c6eca451c5
Fix flag decl and defs
2018-02-08 14:16:16 -08:00
Peter Goodman
2eaeb7480c
Adding Google Flags-like command-line option parsing, though implemented in C, to the main executable. The code is ported from Granary2.
2018-01-07 16:25:31 -05:00
Peter Goodman
f4dd61f895
Added overrides for assert_fail and stack_chk_fail.
2017-12-13 14:16:21 -05:00
Peter Goodman
308fe70eb6
Hooked __assert_fail into the logging system.
2017-12-13 12:43:34 -05:00
Peter Goodman
8248bbdcbc
Removed usage of old name, added in a Euler power of like primes example. When the pairwise ASSERT_NEs are absent, you get interesting results that show examples of integer overflows.
2017-12-10 20:08:08 -05:00
Peter Goodman
fcd000dc14
Added a maximize objective API to DeepState.
2017-12-10 13:37:47 -05:00
Peter Goodman
188d4517d8
Added prime polynomial example, new Pumping function to address scalability challenges with primality testing, and some improvements to the streaming interface, where if you don't stream in values, then the python side doesn't end up printing out some 'empty' stream infos.
2017-12-09 16:43:43 -05:00
Peter Goodman
f9fb7e81be
Initial progress in Issue #7 with support for a Dr. Fuzz harness.
2017-12-08 21:07:52 -05:00
Peter Goodman
5f36822021
Made the report function concretize using the minimizer, so that eventually we'll be able to compare inputs generated across tools
2017-11-09 10:35:48 -05:00
Peter Goodman
6ec7d71188
Added error checking.
2017-11-02 01:05:15 -04:00
Peter Goodman
c4f74e2389
Adds some error checking around finding important symbols and initializing Manticore/Angr. Adds the ability to save concretized bytes to an output directory. For the time being, I'm going with the approach of the user specifying a output dir, then within that I create directories for each file basename in the tests, and subdirectories for each test name, and in there I put binary test files.
2017-11-02 00:54:18 -04:00
Peter Goodman
4f914e4eee
Fixes to stream formatting of doubles, they weren't being streamed before. Implemented the chk versions of printf and such, so that they all route through the logging interface as well. Implemented the concretization APIs.
2017-11-01 17:56:54 -04:00
Peter Goodman
d2bc82fc35
Renaming from McTest to DeepState.
2017-11-01 13:38:32 -04:00