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
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract org.gradle.api.file.DirectoryProperty
    The verdict-cache directory to scan (build/bmc4j/verdict-cache); set by the plugin.
    abstract org.gradle.api.file.RegularFileProperty
    Where the ranked report is written.
    void
     

    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, usesService

    Methods 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, setImpliesSubProjects

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods 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 to build/bmc4j/stub-report.txt.
    • report

      public void report() throws IOException
      Throws:
      IOException