Package org.bmc4j.gradle
Class BmcStubReportTask
java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.bmc4j.gradle.BmcStubReportTask
- All Implemented Interfaces:
Comparable<org.gradle.api.Task>,org.gradle.api.internal.DynamicObjectAware,org.gradle.api.internal.TaskInternal,org.gradle.api.Named,org.gradle.api.plugins.ExtensionAware,org.gradle.api.Task,org.gradle.util.Configurable<org.gradle.api.Task>
@DisableCachingByDefault(because="Re-reads the current verdict cache on every run; output is a freshly aggregated report")
public abstract class BmcStubReportTask
extends org.gradle.api.DefaultTask
Aggregates the nondet stubs harvested across the proof suite into a ranked "most-hit unmodeled
methods" report — a data-driven
bmc-models backlog.
The fact is already persisted: every verified proof's verdict-cache entry under
build/bmc4j/verdict-cache/ carries its harvested STUB <fqn> lines. This task reads
those entries, tallies how many proofs hit each stubbed method, and writes a ranked report (and prints
the top of it). Run the test task first so the cache is populated; a stub the suite never hit
won't appear (that's the point — it ranks what proofs actually depend on).
Note: counts are per cached verdict entry, the same granularity the cache stores; a stub
acknowledged via allowStubs is still counted here (the report is about modeling coverage, not
about what's been waved through).
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.gradle.api.Named
org.gradle.api.Named.Namer -
Field Summary
Fields inherited from interface org.gradle.api.Task
TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract org.gradle.api.file.DirectoryPropertyThe verdict-cache directory to scan (build/bmc4j/verdict-cache); set by the plugin.abstract org.gradle.api.file.RegularFilePropertyWhere the ranked report is written.voidreport()Methods inherited from class org.gradle.api.DefaultTask
compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesServiceMethods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, setImpliesSubProjectsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gradle.api.Task
doNotTrackState, notCompatibleWithConfigurationCache
-
Constructor Details
-
BmcStubReportTask
public BmcStubReportTask()
-
-
Method Details
-
getCacheDir
@Internal public abstract org.gradle.api.file.DirectoryProperty getCacheDir()The verdict-cache directory to scan (build/bmc4j/verdict-cache); set by the plugin.@Internal: this is a report task run on demand — it should re-read the current cache each invocation, not be skipped by up-to-date checks on the cache dir. -
getReportFile
@OutputFile public abstract org.gradle.api.file.RegularFileProperty getReportFile()Where the ranked report is written. Defaults tobuild/bmc4j/stub-report.txt. -
report
- Throws:
IOException
-