Open codemanyak opened 1 day ago
It turned out that both fixing approaches are necessary (complementarily), in particular to cope with possible multi-line calls. Some additional modifications were applied to improve performance (or compensate for the necessary retrieval efforts).
When a subroutie gets completely test-covered then only the current Call and subsequently executed Call elements referring to this routine become marked as deeply covered:
Other (not currently involved) Calls remain unaware of the change such that dependent Roots may appear incompletely covered though they are covered in fact. As a workaround, either all referring Calls throughout the Arranger pool must be retrieved and updated whenever a routine gets covered or the coverage test method of Call elements must always check the subroutine status if the deeplyCovered flag hasn't been set yet. (A difficulty may arise from recursive routines, for which some Calls may have been cloned in the call stack.)