more features checks. setup improvements
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature": "declarative-multi-modal-policy-engine",
|
||||
"module": "policy",
|
||||
"tier": "tier1-build",
|
||||
"run": "run-003",
|
||||
"date": "2026-02-12",
|
||||
"result": "pass",
|
||||
"project": "StellaOps.Policy.Engine.Tests",
|
||||
"command": "dotnet build src/Policy/__Tests/StellaOps.Policy.Engine.Tests/StellaOps.Policy.Engine.Tests.csproj --no-restore --verbosity quiet",
|
||||
"output": "Build succeeded. 0 Warning(s) 0 Error(s)",
|
||||
"notes": "Engine test project builds cleanly with 15 new deep verification tests added in DeclarativeMultiModalPolicyEngineDeepTests.cs"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"feature": "declarative-multi-modal-policy-engine",
|
||||
"module": "policy",
|
||||
"tier": "tier1-code-review",
|
||||
"run": "run-003",
|
||||
"date": "2026-02-12",
|
||||
"result": "pass",
|
||||
"sourceFilesReviewed": [
|
||||
"src/Policy/StellaOps.Policy.Engine/Evaluation/PolicyEvaluator.cs",
|
||||
"src/Policy/StellaOps.Policy.Engine/Evaluation/PolicyExpressionEvaluator.cs",
|
||||
"src/Policy/StellaOps.Policy.Engine/Scoring/ScoringEngineFactory.cs",
|
||||
"src/Policy/StellaOps.Policy.Engine/Services/PolicyEvaluationService.cs",
|
||||
"src/Policy/StellaOps.PolicyDsl/PolicyCompiler.cs",
|
||||
"src/Policy/StellaOps.PolicyDsl/PolicyParser.cs"
|
||||
],
|
||||
"testFilesReviewed": [
|
||||
"src/Policy/__Tests/StellaOps.Policy.Engine.Tests/PolicyEvaluatorTests.cs",
|
||||
"src/Policy/__Tests/StellaOps.Policy.Engine.Tests/Scoring/SimpleScoringEngineTests.cs",
|
||||
"src/Policy/__Tests/StellaOps.Policy.Engine.Tests/Scoring/AdvancedScoringEngineTests.cs",
|
||||
"src/Policy/__Tests/StellaOps.Policy.Engine.Tests/PolicyCompilationServiceTests.cs",
|
||||
"src/Policy/__Tests/StellaOps.PolicyDsl.Tests/PolicyCompilerTests.cs"
|
||||
],
|
||||
"newTestFile": "src/Policy/__Tests/StellaOps.Policy.Engine.Tests/DeclarativeMultiModalPolicyEngineDeepTests.cs",
|
||||
"findings": [
|
||||
"PolicyEvaluator sorts rules by ascending priority (lower number evaluates first), not descending",
|
||||
"Default priority for rules without explicit priority is 0 (evaluates first)",
|
||||
"End-to-end DSL compilation produces deterministic checksums (SHA256-based)",
|
||||
"VEX scope evaluates vex.any() by iterating statements with nested local scopes",
|
||||
"VEX scope vex.justification resolves to first statement's justification",
|
||||
"VEX scope vex.latest() returns the last statement in the array",
|
||||
"Exception handling uses specificity scoring to determine winning exception",
|
||||
"Unknown budget integration blocks when budget exceeded with BudgetAction.Block",
|
||||
"ScoringEngineFactory supports Simple, Advanced, and Custom profiles",
|
||||
"PolicyEvaluationService delegates to PolicyEvaluator with optional EWS score injection",
|
||||
"PolicyCompiler produces stable checksum across repeated compilations of same source",
|
||||
"Invalid policy DSL (missing when clause) produces diagnostics",
|
||||
"Expression evaluator supports severity ordering: critical=5, high=4, medium=3, low=2, info=1, none=0, unknown=-1"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"feature": "declarative-multi-modal-policy-engine",
|
||||
"module": "policy",
|
||||
"tier": "tier2-test",
|
||||
"run": "run-003",
|
||||
"date": "2026-02-12",
|
||||
"result": "pass",
|
||||
"project": "StellaOps.Policy.Engine.Tests",
|
||||
"command": "dotnet test src/Policy/__Tests/StellaOps.Policy.Engine.Tests/StellaOps.Policy.Engine.Tests.csproj --no-build -- --report-xunit",
|
||||
"summary": {
|
||||
"total": 1278,
|
||||
"passed": 1278,
|
||||
"failed": 0,
|
||||
"skipped": 0,
|
||||
"duration": "8.5s"
|
||||
},
|
||||
"newTests": {
|
||||
"class": "DeclarativeMultiModalPolicyEngineDeepTests",
|
||||
"total": 15,
|
||||
"passed": 15,
|
||||
"failed": 0
|
||||
},
|
||||
"testsCovered": [
|
||||
"CompileAndEvaluate_CriticalSeverity_BlocksWithCorrectRule",
|
||||
"CompileAndEvaluate_HighInternet_EscalatesToCritical",
|
||||
"CompileAndEvaluate_VexNotAffected_SetsStatusAndAnnotation",
|
||||
"CompileAndEvaluate_MediumSeverity_EmitsWarning",
|
||||
"CompileAndEvaluate_LowSeverity_Allows",
|
||||
"Compile_MultiGatePolicy_ParsesAllRulesAndMetadata",
|
||||
"Compile_InvalidPolicy_ReturnsDiagnostics",
|
||||
"Compile_SameSource_ProducesSameChecksum",
|
||||
"Evaluate_RulesExecuteInPriorityOrder_HighestFirst",
|
||||
"Evaluate_WithSuppressException_SuppressesBlockedFinding",
|
||||
"SimpleScoringEngine_Profile_ReturnsSimple",
|
||||
"AdvancedScoringEngine_Profile_ReturnsAdvanced",
|
||||
"Evaluate_UnknownBudgetExceeded_BlocksEvaluation",
|
||||
"Evaluate_100Iterations_ProducesIdenticalResults",
|
||||
"Compile_100Iterations_ProducesIdenticalChecksum"
|
||||
],
|
||||
"bugFixed": {
|
||||
"description": "VEX test initially used Medium severity which matched warn_medium (priority 50) before accept_vex_not_affected (priority 80). Fixed by using High severity with internal exposure so VEX rule fires correctly.",
|
||||
"rootCause": "PolicyEvaluator sorts rules ascending by priority (lower number evaluates first), so priority 50 evaluates before priority 80."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user