Commit Graph

79 Commits

Author SHA1 Message Date
Joe Ranweiler b15e2a6f17 Merge pull request #26 from trailofbits/read-auto-generated-tests
Read auto-generated tests
2018-02-12 08:46:32 -08:00
Joe Ranweiler 879000bc73 Document functions for running saved test cases 2018-02-11 12:52:56 -08:00
Joe Ranweiler d25a181771 Fix indent level 2018-02-10 16:09:37 -08:00
Joe Ranweiler 579cba3705 Check for error when stating test input file 2018-02-10 16:09:37 -08:00
Joe Ranweiler d81cbba137 Clear log stream before failing with longjmp in fatal log
When an assertion fails in the C++ API, it ultimately invokes a
`Fatal`-level `DeepState_Log()`. This calls `DeepState_Fail()`, which
longjmps. If we don't clear the log buffer here, it won't get cleared by
the usual logic which does so. This causes hanging, unflushed log
messages to persist between tests.

This relationship should eventually be inverted and decoupled.
2018-02-10 16:09:37 -08:00
Joe Ranweiler 4a90b2a5e8 Skip tests with no saved cases to run 2018-02-10 16:09:37 -08:00
Joe Ranweiler f3d13e37b3 Factor out initializing input from file 2018-02-10 16:09:36 -08:00
Joe Ranweiler 78cc5d46be Add initial impl of running saved test cases 2018-02-10 16:09:36 -08:00
Joe Ranweiler 2c7334ab0d Fix typo in error message 2018-02-10 16:09:36 -08:00
Joe Ranweiler 731876a7e6 Fix typo in example CMakeLists.txt 2018-02-10 16:09:36 -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
Joe Ranweiler 1f3a4a982d Merge pull request #25 from trailofbits/python-version
Explicitly depend on Python 2.7
2018-02-06 15:37:33 -08:00
Joe Ranweiler 9df8d2b9fd Merge pull request #20 from trailofbits/readme
Add first pass at README
2018-02-06 15:34:54 -08:00
Joe Ranweiler 124c54194d Explicitly depend on Python 2.7
Not using a more specific binary causes build failures on systems where
the default Python is 3. The existing backends, angr and Manticore, both
require Python 2.7, so we can look at supporting Python 3 when they do.
2018-02-06 14:25:51 -08:00
Joe Ranweiler 07b38bd73f Add first pass at README 2018-02-06 14:24:03 -08:00
Peter Goodman 1aa468dabc Minor formatting changes. 2018-02-06 12:18:06 +08:00
Peter Goodman d227cc7f34 Enabled PIC. 2018-01-22 21:19:54 -05:00
Peter Goodman ee80baa0ea Minor fix. 2018-01-18 14:24:08 -05: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 49524e610d Symbol lookup refactor. 2017-12-14 14:56:09 -05:00
Alex Groce 0d934d4fac Attempt at OS X symbol lookup fix 2017-12-14 11:39:37 -08:00
Peter Goodman 31838780c3 Trim out trailing newlines and stuff 2017-12-14 00:56:22 -05:00
Peter Goodman 622afcdb98 Made variadic argument lists work in 32 bit x86. 2017-12-13 23:53:48 -05:00
Peter Goodman 303da80e78 Add OneOf for C-strings, vectors, and arrays. 2017-12-13 23:08:50 -05:00
Peter Goodman 1433f34960 Makeing 100% sure that the format_bufs are NUL-terminated. 2017-12-13 22:46:20 -05:00
Peter Goodman 7c585f5c44 Add 32-bit support, i.e. libdeepstate32 2017-12-13 21:53:33 -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 5a84f665b6 Minor tweak. 2017-12-13 01:31:29 -05:00
Peter Goodman bdf9f97913 Fixed OneOf example. 2017-12-12 22:22:31 -05:00
Peter Goodman ada078368f Removing testfs example, and moving it to pgoodman/testfs. 2017-12-12 22:09:31 -05:00
alex dca3f7342e adding 2017-12-12 14:45:44 -08:00
alex 97162bdf13 missing comment 2017-12-12 12:26:02 -08:00
alex acd4e025b6 Merge branch 'master' of https://github.com/trailofbits/deepstate 2017-12-12 12:24:44 -08:00
alex 5b35c46fba small edits 2017-12-12 12:24:09 -08:00
Peter Goodman e9bd6dc177 Fixes one or two subtle issues. But the more interesting fix is that I implemented puts in terms of DeepState_Log. Calls to printf that had no format arguments are transformed by the compiler into calls to puts, but that wasn't being wrapped by DeepState, so it was appearing as though those log messages never actually happened. 2017-12-12 14:01:41 -05:00
alex c65b0c7ba4 better version 2017-12-12 00:20:13 -08:00
alex 70090bd712 Version that works, test depth 2017-12-11 23:17:18 -08:00
Peter Goodman 669f6cf3f9 Made the OneOf example work. 2017-12-11 19:40:39 -05:00
alex 76ff9ec5b3 capture fixed 2017-12-11 14:56:48 -08:00
alex 26657954c7 OneOf example (failing) 2017-12-11 14:30:37 -08:00
Peter Goodman f15e09520b Merge branch 'master' of github.com:trailofbits/deepstate 2017-12-10 20:09:36 -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 f28b285ac3 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 14:39:05 -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 3aaaf71b85 Added support for c++ test fixtures. 2017-12-08 23:58:59 -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 a411f0e032 Adds ONE_OF. Breaks some lines at 80 columns. 2017-12-07 20:05:06 -05:00