StigAnalysisP5GenerateAnalyzerRunPlanTask

@CacheableTask
abstract class StigAnalysisP5GenerateAnalyzerRunPlanTask : DefaultTask, StigProblemProducerTask

Generates the v4 PhASAR run-plan: one aggregate cfg for every (analysisKind × sinkASIL) combination, flat in the task's output directory.

v4 semantics

The v4 schema (see stig-docs/.../user-guide/analysis-pipeline.md) runs the analyzer twice per ASIL for elements that carry sinks at that ASIL:

  • cascading-faults pass — sources at ASIL strictly below sinkASIL. Answers the safety question "did low-integrity data influence a higher-integrity sink?".

  • data-and-control-flow pass — sources at sinkASIL or above. Answers the design question "what's the natural flow within this safety level?".

A pass is only emitted if its source set is non-empty: if every source is at QM and every sink is at B, only the cascading-faults cfg materializes (1 cfg). The typical activity has sources at multiple ASILs and sinks at a single ASIL → 2 cfgs.

Filesystem layout

Everything sits flat in outputDir. No more 3-axis nesting (the pre-v4 <analysisType>/<depth>/<mergeMode>/<slug> tree is gone — pass identity is encoded in the filename + carried in the run-plan JSON as typed fields).

<outputDir>/
data-and-control-flow-B.json ← cfg (analyzer's --config=)
data-and-control-flow-B.endpoints.json ← ASIL sidecar (P7 reads)
cascading-faults-B.json
cascading-faults-B.endpoints.json

Run-plan JSON

Each entry has analysisKind/sinkASIL/sourceASILs/sinkSelection as typed fields — downstream consumers (P6 runner, P7 diagram task) read those rather than inferring from filesystem paths. CLI args plumb the same values into --analysis-kind, --sink-asil, --source-asils.

Constructors

constructor()

Properties

Link copied to clipboard
open override var actions: List<Action<in Task?>?>?
Link copied to clipboard
@get:Input
abstract val aliasAnalysis: Property<String>
Link copied to clipboard
open override val ant: AntBuilder?
Link copied to clipboard
@get:Internal
open val asDynamicObject: DynamicObject
Link copied to clipboard
@get:Input
abstract val autoGlobals: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val callGraphAnalysis: Property<String>
Link copied to clipboard
@get:Input
abstract val cascadingFailuresAnalysis: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val dataAndControlFlowAnalysis: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val dataFlowAnalysis: Property<String>
Link copied to clipboard
open override val dependsOn: Set<Any?>?
Link copied to clipboard
open override var description: @Nullable String?
Link copied to clipboard
open override val destroyables: TaskDestroyables?
Link copied to clipboard
open override var didWork: Boolean
Link copied to clipboard
@get:Input
abstract val emitGraphicalReport: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val emitRawResults: Property<Boolean>
Link copied to clipboard
@get:Input
abstract val emitTextReport: Property<Boolean>
Link copied to clipboard
open override var enabled: Boolean
Link copied to clipboard
open override val extensions: ExtensionContainer?
Link copied to clipboard
@get:Input
@get:Optional
abstract val failAt: Property<ProblemSeverity>
Link copied to clipboard
open override val finalizedBy: TaskDependency?
Link copied to clipboard
@get:InputFile
@get:Optional
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val generatedHarnessContractFile: RegularFileProperty

Generated lifecycle contract, when this element uses a generated harness.

Link copied to clipboard
open override var group: @Nullable String?
Link copied to clipboard
open val identityPath: Path?
Link copied to clipboard
Link copied to clipboard
@get:Internal
abstract val includedInDefaultProblemAggregate: Property<Boolean>
Link copied to clipboard
open override val inputs: TaskInputsInternal?
Link copied to clipboard
@get:Input
abstract val interfacePointMode: Property<InterfacePointMode>
Link copied to clipboard
@get:InputFile
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val interfacePointsFile: RegularFileProperty
Link copied to clipboard
@get:Internal
open var isEnabled: Boolean
Link copied to clipboard
Link copied to clipboard
@get:Internal
open val lifecycleDependencies: TaskDependencyInternal?
Link copied to clipboard
open override val localState: TaskLocalState?
Link copied to clipboard
open override val logger: Logger?
Link copied to clipboard
open override val logging: LoggingManager?
Link copied to clipboard
open val loggingManager: @Nullable LoggingManagerInternal?
Link copied to clipboard
@get:Input
@get:Optional
abstract val maxSinksPerSolver: Property<Int>

Maximum configured sink symbols active in one IDE-XTaint solver execution.

Link copied to clipboard
@get:InputFile
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val moduleBc: RegularFileProperty
Link copied to clipboard
@get:InputFile
@get:PathSensitive(value = PathSensitivity.RELATIVE)
abstract val moduleLl: RegularFileProperty
Link copied to clipboard
open override val mustRunAfter: TaskDependency?
Link copied to clipboard
open override val name: String?
Link copied to clipboard
open val onlyIf: Spec<in TaskInternal?>?
Link copied to clipboard
@get:OutputDirectory
abstract val outputDir: DirectoryProperty
Link copied to clipboard
open override val outputs: TaskOutputsInternal?
Link copied to clipboard
open override val path: String?
Link copied to clipboard
@get:Input
abstract val pathFeasibility: Property<PathFeasibility>
Link copied to clipboard
@get:OutputFile
abstract override val problemsFile: RegularFileProperty
Link copied to clipboard
open override val project: Project?
Link copied to clipboard
@get:Input
abstract val projectPath: Property<String>

Gradle project path captured during configuration for canonical problem provenance.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@get:Input
abstract val repos: MapProperty<String, String>

Source-tree roots the analyzer is allowed to resolve LLVM debug-info paths against (v5 --repo NAME=PATH flag, repeatable). Keys are wire-format repo names that appear in the JSON's sourceRepo field; values are absolute paths to the repo root on the build machine. An LLVM source path that doesn't fall under any declared repo aborts analysis with a clear error — there is no silent fallback.

Link copied to clipboard
open val requiredServices: TaskRequiredServices?
Link copied to clipboard
@get:OutputFile
abstract val runPlanFile: RegularFileProperty
Link copied to clipboard
@get:Internal
abstract val runPlanOutRoot: DirectoryProperty

P6's output root — used to compose the per-run outDir referenced from run-plan args.

Link copied to clipboard
@get:Input
abstract val runPlanOutRootPath: Property<String>
Link copied to clipboard
@get:Input
abstract val sanitizerSymbols: ListProperty<String>

LLVM symbol names of sanitizer functions to declare in every generated cfg as {"name": "...", "ret": "sanitizer"}. Populated from interfacePoints { sanitizer("…") } in the DSL.

Link copied to clipboard
open val sharedResources: List<ResourceLock?>?
Link copied to clipboard
open override val shouldRunAfter: TaskDependency?
Link copied to clipboard
open val standardOutputCapture: StandardOutputCapture?
Link copied to clipboard
open override val state: TaskStateInternal?
Link copied to clipboard
open val taskActions: List<InputChangesAwareTaskAction?>?
Link copied to clipboard
open override val taskDependencies: TaskDependencyInternal?
Link copied to clipboard
open val taskIdentity: TaskIdentity<*>?
Link copied to clipboard
open override val temporaryDir: File?
Link copied to clipboard
open val temporaryDirFactory: Factory<File?>?
Link copied to clipboard
open override val timeout: Property<Duration?>?

Functions

Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec?>?)
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
open operator fun compareTo(otherTask: Task?): Int
Link copied to clipboard
open fun configure(closure: Closure<*>?): Task?
Link copied to clipboard
open fun dependsOn(vararg paths: Any?): Task?
Link copied to clipboard
open fun doFirst(action: Closure<*>?): Task?
open fun doFirst(action: Action<in Task?>?): Task?
open fun doFirst(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doLast(action: Closure<*>?): Task?
open fun doLast(action: Action<in Task?>?): Task?
open fun doLast(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doNotTrackState(reasonNotToTrackState: String?)
Link copied to clipboard
open fun doNotTrackStateIf(reason: String?, spec: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun finalizedBy(vararg paths: Any?): Task?
Link copied to clipboard
open fun getActions(): List<Action<in Task?>?>?
Link copied to clipboard
open fun getAnt(): AntBuilder?
Link copied to clipboard
open fun getDependsOn(): Set<Any?>?
Link copied to clipboard
open fun getDescription(): @Nullable String?
Link copied to clipboard
open fun getDestroyables(): TaskDestroyables?
Link copied to clipboard
open fun getDidWork(): Boolean
Link copied to clipboard
open fun getEnabled(): Boolean
Link copied to clipboard
open fun getExtensions(): ExtensionContainer?
Link copied to clipboard
open fun getFinalizedBy(): TaskDependency?
Link copied to clipboard
open fun getGroup(): @Nullable String?
Link copied to clipboard
open fun getInputs(): TaskInputsInternal?
Link copied to clipboard
open fun getLocalState(): TaskLocalState?
Link copied to clipboard
open fun getLogger(): Logger?
Link copied to clipboard
open fun getLogging(): LoggingManager?
Link copied to clipboard
open fun getMustRunAfter(): TaskDependency?
Link copied to clipboard
open fun getName(): String?
Link copied to clipboard
open fun getOutputs(): TaskOutputsInternal?
Link copied to clipboard
open fun getPath(): String?
Link copied to clipboard
open fun getProject(): Project?
Link copied to clipboard
open fun getShouldRunAfter(): TaskDependency?
Link copied to clipboard
open fun getState(): TaskStateInternal?
Link copied to clipboard
open fun getTaskDependencies(): TaskDependencyInternal?
Link copied to clipboard
open fun getTemporaryDir(): File?
Link copied to clipboard
open fun getTimeout(): Property<Duration?>?
Link copied to clipboard
open fun hasProperty(propertyName: String?): Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun mustRunAfter(vararg paths: Any?): Task?
Link copied to clipboard
open fun onlyIf(onlyIfClosure: Closure<*>?)
open fun onlyIf(spec: Spec<in Task?>?)
open fun onlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
open fun property(propertyName: String?): Any?
Link copied to clipboard
open fun restoreOnlyIf(onlyIf: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun restoreTaskActions(taskActions: List<InputChangesAwareTaskAction?>?)
Link copied to clipboard
fun run()
Link copied to clipboard
open fun setActions(replacements: List<Action<in Task?>?>?)
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<*>?)
Link copied to clipboard
open fun setDescription(description: @Nullable String?)
Link copied to clipboard
open fun setDidWork(didWork: Boolean)
Link copied to clipboard
open fun setEnabled(enabled: Boolean)
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<*>?)
Link copied to clipboard
open fun setGroup(group: @Nullable String?)
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun setOnlyIf(onlyIfClosure: Closure<*>?)
open fun setOnlyIf(spec: Spec<in Task?>?)
open fun setOnlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun setProperty(name: String?, value: Any?)
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun shouldRunAfter(vararg paths: Any?): TaskDependency?
Link copied to clipboard
open fun usesService(service: Provider<out BuildService<*>?>?)