Releases: joakim-brannstrom/dextool
Releases · joakim-brannstrom/dextool
The Final Push
This release marks the stabilization of the C and C++ test double plugins.
New Features
- (Experimental) Plugin to generate a graph of the analyzed source code. Stored in the format GraphML.
New Features C/C++ Test Double plugin
- C, can initialize/reset global variables. By default they are zero initialized.
- C/C++, log how deXtool was ran to generated the test double. It makes it easier to recreate the test double.
- C/C++, injection of custom headers support replacing
$file$ with the filename of the generated file. - C/C++, allow configuration of the compilation database filtering of compiler flags
- C, allow filtering of symbols to restrict/exclude from the generated test double.
Bug Fixes
- Unable to specify multiple --file-restrict
- Wrong headers are generated in the C/C++ test double code when using multiple --in and --file-exclude
- The destination directory (--out) isn't created if it doesn't exist which results in deXtool exiting.
Minority Report
New Features
- It is now possible to build dextool on OSX.
- Custom header support that is injected in generated files.
Bug fixes
- Fix crash on anonymous types.
- Location for a forward declared type is wrong.
- Pointer locations aren't classified as definitions.
- The USR for a parameter isn't unique when the type is a pointer.
- Incorrectly calculated paths for compilation databases.
Internal
- Logger prints the kind of location (declaration/definition)
The Boring One
The release mostly consist of bugfixes.
Features:
- Generate a header with the dextool version.
- Enable the user to inject a header in the generated files.
Bugs:
- Fix for the fully qualified name of implicit types residing in namespaces.
- Fix how the absolute path is derived for files from a compilation database.
- Fix USR for functions and pointers.
- Fix the uniqueness of free functions in clang 3.7
Quality of Life
For the user:
- The methods in the C++ interface of test doubles are sorted.
- The gmock macros are sorted in the generated gmocks.
For the developer:
- End of life of the compile time generated clang AST. By generating it with a script the compile time has been improved. The total test cycle on Travis has been cut by 33%.
- Fixes to the code to make it compile with 2.072-b1. The new safety improvements found potential memory bugs.
Squice
- (fixed) Wrong type is resolved for the pointee type of a double pointer.
- (fixed) The USR of the array types element is used instead of deriving a unique for the array.
Doing the needful
Mostly internal refactoring to improve maintainability.
Fixes
- The definition of a symbol is used when filtering with --file-exclude or --file-restrict.
- Fix bugs when determining the location of a function that uses a typedef for the signature.
- Fix accidental merge of pointer types.
Almost Useful
The user facing features are:
- support for compilation database (see clang). Multiple databases can be specified.
- analyze of multiple files when generating a C test double.
- improved UML diagrams.
Better tracking of symbol location.
Besides the plantuml diagram a pure Graphviz/dot diagram is generated.
Identify and classify abstract classes.
Analyze parameter dependency of free functions for component diagrams.
etc...
Besides the new features a ton of bugs have been fixed.
Major internal refactoring.
Plugging plugins
A plugin architecture is added to allow users to extend deXtool.
Smashing bugs
Bugs, bugs they all exist.
Scatter, run, hide they can.
Hunt, smash, crush with wit!
Fixing bugs, no new features.
See pull requests and commits.
v0.5.0: Merge pull request #52 from joakim-brannstrom/fix-test-compile-params
- Relicensed under MPL-2.
- Generate correct test doubles for classes that are part of an inherit hierarchy.
- First steps take for a plugin architecture.
- Implement a workaround for generated gmocks with more than 10 parameters.
- Always generate a virtual destructor of gmocks.
etc... See git history.