Complete batch 012 (golden set diff) and 013 (advisory chat), fix build errors
Sprints completed: - SPRINT_20260110_012_* (golden set diff layer - 10 sprints) - SPRINT_20260110_013_* (advisory chat - 4 sprints) Build fixes applied: - Fix namespace conflicts with Microsoft.Extensions.Options.Options.Create - Fix VexDecisionReachabilityIntegrationTests API drift (major rewrite) - Fix VexSchemaValidationTests FluentAssertions method name - Fix FixChainGateIntegrationTests ambiguous type references - Fix AdvisoryAI test files required properties and namespace aliases - Add stub types for CveMappingController (ICveSymbolMappingService) - Fix VerdictBuilderService static context issue Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
140
.gitea/workflows/golden-set-validation.yml
Normal file
140
.gitea/workflows/golden-set-validation.yml
Normal file
@@ -0,0 +1,140 @@
|
||||
# Licensed under AGPL-3.0-or-later. Copyright (C) 2026 StellaOps Contributors.
|
||||
# Sprint: SPRINT_20260110_012_010_TEST
|
||||
# Golden Set Corpus Validation Workflow
|
||||
|
||||
name: Golden Set Validation
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'src/__Tests/__Datasets/golden-sets/**'
|
||||
- 'src/__Tests/Integration/GoldenSetDiff/**'
|
||||
- 'src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.GoldenSet/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'src/__Tests/__Datasets/golden-sets/**'
|
||||
- 'src/__Tests/Integration/GoldenSetDiff/**'
|
||||
- 'src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.GoldenSet/**'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
validate-corpus:
|
||||
name: Validate Golden Set Corpus
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: '10.0.x'
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj
|
||||
|
||||
- name: Build
|
||||
run: dotnet build src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj --no-restore
|
||||
|
||||
- name: Run Corpus Validation Tests
|
||||
run: |
|
||||
dotnet test src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj \
|
||||
--filter "FullyQualifiedName~CorpusValidationTests" \
|
||||
--logger "trx;LogFileName=corpus-validation.trx" \
|
||||
--results-directory ./TestResults
|
||||
|
||||
- name: Run Determinism Tests
|
||||
run: |
|
||||
dotnet test src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj \
|
||||
--filter "FullyQualifiedName~DeterminismTests" \
|
||||
--logger "trx;LogFileName=determinism.trx" \
|
||||
--results-directory ./TestResults
|
||||
|
||||
- name: Run Replay Validation Tests
|
||||
run: |
|
||||
dotnet test src/__Tests/Integration/GoldenSetDiff/StellaOps.Integration.GoldenSetDiff.csproj \
|
||||
--filter "FullyQualifiedName~ReplayValidationTests" \
|
||||
--logger "trx;LogFileName=replay-validation.trx" \
|
||||
--results-directory ./TestResults
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
name: test-results
|
||||
path: ./TestResults/*.trx
|
||||
|
||||
e2e-tests:
|
||||
name: E2E Fix Verification Tests
|
||||
runs-on: ubuntu-latest
|
||||
needs: validate-corpus
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup .NET
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: '10.0.x'
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore src/__Tests/E2E/GoldenSetDiff/StellaOps.E2E.GoldenSetDiff.csproj
|
||||
|
||||
- name: Build
|
||||
run: dotnet build src/__Tests/E2E/GoldenSetDiff/StellaOps.E2E.GoldenSetDiff.csproj --no-restore
|
||||
|
||||
- name: Run E2E Tests
|
||||
run: |
|
||||
dotnet test src/__Tests/E2E/GoldenSetDiff/StellaOps.E2E.GoldenSetDiff.csproj \
|
||||
--logger "trx;LogFileName=e2e.trx" \
|
||||
--results-directory ./TestResults
|
||||
|
||||
- name: Upload Test Results
|
||||
uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
name: e2e-test-results
|
||||
path: ./TestResults/*.trx
|
||||
|
||||
count-golden-sets:
|
||||
name: Count and Report Golden Sets
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Count Golden Sets
|
||||
id: count
|
||||
run: |
|
||||
total=$(find src/__Tests/__Datasets/golden-sets -name "*.golden.yaml" | wc -l)
|
||||
openssl=$(find src/__Tests/__Datasets/golden-sets/openssl -name "*.golden.yaml" 2>/dev/null | wc -l)
|
||||
glibc=$(find src/__Tests/__Datasets/golden-sets/glibc -name "*.golden.yaml" 2>/dev/null | wc -l)
|
||||
curl=$(find src/__Tests/__Datasets/golden-sets/curl -name "*.golden.yaml" 2>/dev/null | wc -l)
|
||||
log4j=$(find src/__Tests/__Datasets/golden-sets/log4j -name "*.golden.yaml" 2>/dev/null | wc -l)
|
||||
synthetic=$(find src/__Tests/__Datasets/golden-sets/synthetic -name "*.golden.yaml" 2>/dev/null | wc -l)
|
||||
|
||||
echo "Total: $total"
|
||||
echo "OpenSSL: $openssl"
|
||||
echo "glibc: $glibc"
|
||||
echo "curl: $curl"
|
||||
echo "Log4j: $log4j"
|
||||
echo "Synthetic: $synthetic"
|
||||
|
||||
echo "total=$total" >> $GITHUB_OUTPUT
|
||||
|
||||
if [ "$total" -lt 15 ]; then
|
||||
echo "::warning::Golden set corpus has fewer than 15 entries ($total)"
|
||||
fi
|
||||
|
||||
- name: Report Summary
|
||||
run: |
|
||||
echo "## Golden Set Corpus Summary" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Component | Count |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "|-----------|-------|" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| OpenSSL | $(find src/__Tests/__Datasets/golden-sets/openssl -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| glibc | $(find src/__Tests/__Datasets/golden-sets/glibc -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| curl | $(find src/__Tests/__Datasets/golden-sets/curl -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Log4j | $(find src/__Tests/__Datasets/golden-sets/log4j -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| Synthetic | $(find src/__Tests/__Datasets/golden-sets/synthetic -name '*.golden.yaml' 2>/dev/null | wc -l) |" >> $GITHUB_STEP_SUMMARY
|
||||
echo "| **Total** | **$(find src/__Tests/__Datasets/golden-sets -name '*.golden.yaml' | wc -l)** |" >> $GITHUB_STEP_SUMMARY
|
||||
Reference in New Issue
Block a user