This file follows the Keep a Changelog format.
Due to the way Cuis Smalltalk manages package versions, this project does not follow Semantic Versioning.
- Build menus to run tests with coverage using the new Cuis menu API (thanks @hernanwilkinson!).
- Open the Code Coverage Browser when tests fail.
- Open the Code Coverage Browser when no methods area covered.
1.70 - 2023-08-10
- Reflexion support to allow Code Coverage to analyze itself.
- Decision coverage support for
#ifTrue:
,#ifFalse:
,#ifTrue:ifFalse:
, and#ifFalse:ifTrue: selectors
. - Display code coverage messages using tooltips in the editor.
- Replace the
ProtoObject>>#coverAll:
extension method used to register code coverage with a call to the newCompiledMethodCoverageReportBuilder>>coverAll:by:
method to prepare the tool to be meta-circular. - Replace the
BlockClosure>>#valueCoveringAll:
extension method used to register code coverage with a call to the newCompiledMethodCoverageReportBuilder>>coverAll:evaluating:
method to prepare the tool to be meta-circular. - Replace the extension methods in
ProtoObject
,CompiledMethod
andBoolean
used to register code coverage with a call to the newCompiledMethodCoverageReportBuilder>>cover:declaredAt:by:
method to prepare the tool to be meta-circular. - Move the responsibility to track compiled methods execution from
CompiledMethodCoverageAnalyzer
toCodeCoverageSourceCodeGenerator
. - Refactor the way coverage is reported to
CompiledMethodCoverageReportBuilder
to clean up its interface. - Supports reporting code coverage to more than one
CompiledMethodCoverageReportBuilder
. This is needed to add support for having more than oneCodeCoverageAnalyzer
running on the same method. - Supports multiple
CompiledMethodCoverageNotifier
instances to be used in a compiled method. This is needed to add support for having more than oneCodeCoverageAnalyzer
running on the same method. - Creates coverage report builders for each method inside
CodeCoverageAnalyzer
. This allows multipleCodeCoverageAnalyzer
instances running on the same compiled method to have their own coverage support. - Supports reusing a compiled method coverage analyzer if one is already installed for the compiled method to be analyzed.
This allows multiple
CodeCoverageAnalyzer
instances to register their report builders in the sameCompiledMethodCoverageAnalyzer
instance for a method. - Optimized traced source code generation by ~2x.
- Uses the LiveTyping disable capabilities now present in the stock Cuis University image (thanks @hernanwilkinson!).
- Uses
notOptimizedMethodNode
to access unoptimized method nodes (feature already available in Cuis) instead of clearing the Parser's class cache (hack to make it work).
- Display code coverage percentages on system categories (they were changed to be displayed in a hierarchical way in the Cuis base image).
- Browsing messages via the message category list in the code coverage browser (sometimes the message list was empty even if there were messages to show).
- Bug that caused message receives to be evaluated twice when tracking code coverage for message sends.
1.33 - 2022-08-21
- Update
CodeCoverage
after aSystemOrganizer
refactoring: useSystemOrganizer>>#withSubCategoriesOf:
instead ofSystemOrganizer>>#categoriesMatching:
. Thanks for submitting this fix, @hernanwilkinson!
1.32 - 2021-11-27
- Do not filter out non-covered classes in the Code Coverage Browser. This bug causes pure abstract classes not to be displayed but their subclasses were still being indented, making them look like they are subclasses of the class that happened to be rendered before them. Thanks for the catch @hernanwilkinson!
1.31 - 2021-10-30
- False positive in cascade message send collaborators (they were not traced at all). Thanks @hernanwilkinson for the catch!
1.29 - 2021-08-26
- The way the source code is retrieved from method nodes in
CodeCoverageSourceCodeGenerator>>#value
. Thanks @hernanwilkinson for the catch and the fix!
1.28 - 2021-03-10
- Support for excluding abstract methods from the code coverage analysis.
1.27 - 2021-02-21
- Support for considering uncovered methods that has not been executed.
- Support for covering boolean temporary variable declarations.
- Support for covering boolean arguments.
- Support for covering block boolean arguments.
- Support for covering boolean block temporary variable declarations.
- Support for covering boolean selectors.
- Support for covering boolean instance variables within a compiled method (covering an instance variable across
- Support for covering boolean class variables within a compiled method (covering a class variable across different compiled methods is not supported yet).
- Support for highlighting in yellow partially covered boolean parse nodes.
- Support for covering unreferenced method and block arguments.
- Support for covering unreferenced method and block temporary variables.
1.10 - 2021-01-31
- Mistyped test assertions.
1.9 - 2020-01-29
- Support for covering messages signaling errors.
- Support for covering temporary variables declarations.
- Support for covering selector arguments.
- Support for covering block arguments.
- Support for covering block temporary variables declarations.
1.3 - 2021-01-20
- Core support for analyzing code coverage when executing code
- New context menu options for System Categories to run package tests with code coverage.
- New context menu options for System Categories, Classes, Message Categories, and Messages to run tests with code coverage.