Commit Graph

371 Commits

Author SHA1 Message Date
Lukasz A.J. Wrona 519a802a1e Add Visual Studio/CMake Codebuild config 2019-10-17 16:21:36 +01:00
johndumbell 5f741a127d Add comments to irep gdb pretty printer 2019-10-01 11:44:18 +01:00
johndumbell db3778acb7 Enable ID printing for root / properly cascade pretty-printing
* Print out the ID of all elements that have children.
* Change it so that instead of appending the dstring of a value node onto the name of the element shown in the IDE, we instead pass the dstring value directly to the pretty-printer framework and let it decide what to do with it. This results in a more consistent look between our irept pretty-printers and a 'normal' pretty printer, and also abstracts away the irep pretty-printer from caring about how things should be shown.

The latter comes with the downside that it is a little harder on the eyes, as it goes '{element name} {type identifier} {string value}', but this is how everything else in the IDE is set up as well.
2019-10-01 11:44:18 +01:00
johndumbell 9887157a67 Suppress any errors with reading options file 2019-10-01 11:44:18 +01:00
johndumbell d4f345bf3d Make any children of irept automatically use the irep pretty-printer 2019-09-20 13:00:29 +01:00
JohnDumbell da454cebdf
Merge pull request #5031 from JohnDumbell/jd/enhancement/pretty-printers
Fix & enable irept pretty-printer
2019-09-19 13:14:13 +01:00
Yumi Bagge 991a8a254d Script to run test and upload report with flag 2019-09-19 11:50:52 +01:00
johndumbell bfd2313ce9 Fix & enable irept pretty-printer 2019-09-19 10:22:36 +01:00
Owen 7ac1a3565c Change how we check doxygen version
We used to check that we got exactly "1.8.14", but now we get
"1.8.16 (b4ba8f5fcbedde3632139f5313fe17d3fd75cfad*)", so we just check
that it starts with "1.8.16".
2019-08-23 14:21:33 +01:00
Owen 954dfbf90c Update expected warnings
The new version of Doxygen seems to have slightly different warnings
2019-08-23 14:21:26 +01:00
Owen 92da8b31bf Update Doxygen version
The old version is no longer available from this host
2019-08-22 13:02:41 +01:00
Nathan Phillips 36dc29a4e2
Merge pull request #4960 from diffblue/NathanJPhillips/feature/irep-pretty-printer
Add a pretty printer for irept
2019-08-13 10:25:22 +01:00
Michael Tautschnig 8099af0e36
Merge pull request #5000 from angelhof/cpplint-cprover-prefix
Refine CPPLINT script to not report __CPROVER_ usage outside of strings
2019-08-09 18:56:53 +01:00
JohnDumbell 79dd38fac6
Merge pull request #4948 from JohnDumbell/jd/bugfix/allow_empty_gdbinit_for_pretty_printers
Take into account no existing .gdbinit file
2019-08-09 15:15:09 +01:00
Konstantinos Kallas dbbd70384b Refine the CPPLINT script to not report a __CPROVER_ misuse false positive
Change r'.*__CPROVER_.*' with r'.*"([^"\\]|\\.)*__CPROVER_([^"\\]|\\.)*".*'
so that only occurrences of __CPROVER_ in strings are caught. Note that
this check will still erroneously complain for the following
 "foo" __CPROVER_func() "bar"
2019-08-08 16:44:35 -04:00
Daniel Poetzl 75fe74b5dd Script to find regression tests that cover given source lines
An intended use case is to find regression tests that need to be adapted when a
loss of coverage in some files is observed when a new feature is merged.

For example, when improving the constant propagator to propagate more
operations, some existing tests that were intended to test the constraint
encoding of those operations might then be solved via constant propagation.
Thus, the existing tests need to be adapted to use non-constants as inputs.
2019-08-01 18:05:59 +01:00
Nathan Phillips e1e50926f3 Add a pretty printer for irept 2019-07-29 17:26:28 +01:00
johndumbell b393954e58 Take into account no existing .gdbinit file
Threw exception when no .gdbinit file existed due to attempting to copy from a non-existent location.
2019-07-25 13:50:55 +01:00
Nathan Phillips 2eca2b152a Add string number to output and check it's valid
Adjust the display_hint type and the formatting to show string as before except after the number
2019-07-24 19:04:14 +01:00
Nathan Phillips 199243dedb Check for optimised-out values 2019-07-24 19:04:14 +01:00
Nathan Phillips 6b0d606026 Make the typed pointer const and add missing brackets 2019-07-24 19:04:14 +01:00
Nathan Phillips a1716ec3e5 Make quotation marks consistent 2019-07-24 19:04:14 +01:00
Nathan Phillips e91cbdc5b1 Add comments to pretty printer 2019-07-24 19:04:14 +01:00
Nathan Phillips 6010d1f503 Back up original file before making changes 2019-07-24 19:04:00 +01:00
Nathan Phillips 0fed35d0af Update pretty printer install script
Make it:
* able to detect when it has already been run
* able to add script to existing file without breaking existing printers
* add new script before existing printers that might clash with it (such as the C++ ones)
* executable
2019-07-24 18:51:41 +01:00
Nathan Phillips 11a407f559 Combine dstring regular expressions 2019-07-24 18:49:34 +01:00
Nathan Phillips 27add1b3e6 Move load function to main file and rename it 2019-07-24 18:49:34 +01:00
Lukasz A.J. Wrona c70cbabf2e Remove linter braces rule
Braces are already checked by clang-format, and this rule doesn't
allow me to use initializer list constructors/uniform initialization
in unit tests
2019-07-17 13:51:39 +01:00
Malte Mues 004cd60d51 Add test for extract_type_header.py script 2019-06-24 11:49:02 -04:00
Malte Mues 67b81c440b Add extract_type_header.py creating a type header
For some test cases it is required access the module internal data structures from the harness.
This script will read the data types from the goto binary and collect the defines from the c_file.
The result is a type header file that can be included to the harness accessing the module local data structures.
Goto-cc will then link the harness with the original c module for verification.
2019-06-24 11:49:02 -04:00
Michael Tautschnig 59baaabb89 Travis clang-format, cpplint: Use the merge base
We previously looked at the diff to the current head of the target
branch, which may have moved in comparison to the merge base of a pull
request. Thus we sometimes ended up with spurious clang-format errors,
talking about changes introduced in another PR.
2019-05-31 21:43:11 +00:00
Michael Tautschnig 27cd164e51 Update generate_vcxproj to work with current source tree
1) We have multiple source files with the same basename, and thus need
to instruct Visual Studio not to put build artefacts into a single
directory.
2) Directory dependencies have changed.
3) Specifically, cbmc now also depends on (parts of) goto-instrument;
yet we must not include goto_instrument_main.cpp in the CBMC build as it
would cause duplicate main functions.
4) Set PlatformToolset in project file to make sure the project can be
used with msbuild.
2019-05-30 11:29:53 +00:00
thk123 0e555e5c32 Add check for missing unidiff dependency 2019-04-11 15:11:56 +01:00
Romain Brenguier 422ebff147 Make process_wrapper.sh executable
Not having it executable can lead to the external script not executing
as expected, and the reason would be difficult to track.
2019-03-18 10:16:21 +00:00
Romain Brenguier 487f594123 Print command line nicely in script
This allow to have a command line that can directly be executed when
extracted from the json output.
2019-03-18 10:16:06 +00:00
johndumbell 655e93689e Add gdb pretty-printers for irep_idt and instructiont
The instructiont here is important because of the way the tree sharing
works it causes an infinite loop in the default pretty-printers.
2019-03-11 12:58:00 +00:00
Romain Brenguier 3092d8df2a Add a --total option to benchmark_to_spreadsheet.js
This adds an option to the script to take the total of the time taken by
the benchmarks instead of the results for each individual functions
2019-03-01 09:37:13 +00:00
Chris Smowton 0a62867803 Benchmark script: use process groups to manage children
Previously when a process timed out only the managing shell would be killed;
the underlying process would continue, starving later jobs of CPU time
2019-02-27 12:19:11 +00:00
Chris Smowton 587b701a17 Benchmark script: improve file naming, readme consistency
The example arguments file is named with _example suffix like the existing example method list,
and the branch and develop CSV files are so named and listed in (x, y) order everywhere.
2019-02-25 09:16:58 +00:00
Chris Smowton 760204eb46 Fix variable and function names in benchmark script 2019-02-22 16:43:20 +00:00
Michael Tautschnig 3b2500bef9 Remove delete-failing-SMT-solver tests script
With the new tag introduced in the preceding commit this is no longer needed.
This actually simplifies our CI scripts.
2019-02-08 12:50:58 +00:00
Romain Brenguier 9ca0dff0c1 README file on how to run benchmarks
This gives instruction on the installation and usage and an example of
command line to use.
2019-02-06 07:59:38 +00:00
Romain Brenguier 044d5459aa Add an example of method list for benchmarks
This are taken from the apache tika project. This can be used when the
apache tika package is compiled locally, otherwise this still serves as
an example of the syntax to use to provide a list of methods to the
script.
2019-02-06 07:59:38 +00:00
Romain Brenguier 191410d05c Gnuplot script for performance comparison
This can be used to compare performances of 2 runs of the benchmarks.
The data should be in 2 csv files named benchmark1.csv and
benchmark2.csv.
2019-02-06 07:59:38 +00:00
Romain Brenguier 19c07d61e7 Script to convert json benchmarks to csv
Add a script which takes the output of the benchmark_java_project.js
script (in json) and format it as a csv file.
2019-02-06 07:59:38 +00:00
Romain Brenguier 9d112e5980 Default JBMC arguments for benchmarks
Add a json file with some values for JBMC arguments.
2019-02-06 07:59:38 +00:00
Romain Brenguier 9f7d891ca1 Add package.json
This is to be able to install dependencies easily, using npm.
2019-02-06 07:59:38 +00:00
Romain Brenguier 2736c05978 Add a script to run Java benchmarks 2019-02-06 07:59:38 +00:00
Michael Tautschnig 321402d324 Maintain nondet counters across symex instances
Use the path storage, which maintains state across different symex
instantiations. While at it, also make the counters std::size_t as using limited
bitwidth is not a meaningful optimisation here.
2019-01-30 20:02:28 +00:00
Michael Tautschnig 291343b298 Silence all Visual Studio warnings when building Minisat or Glucose
We are not going to patch all the issues Visual Studio warns about in those code
bases.
2019-01-23 19:38:17 +00:00