consolidate the tests locations

This commit is contained in:
StellaOps Bot
2025-12-26 01:48:24 +02:00
parent 17613acf57
commit 39359da171
2031 changed files with 2607 additions and 476 deletions

View File

@@ -17,7 +17,7 @@ on:
push:
paths:
- 'src/Scanner/__Libraries/StellaOps.Scanner.Benchmark/**'
- 'bench/competitors/**'
- 'src/__Tests/__Benchmarks/competitors/**'
env:
DOTNET_VERSION: '10.0.x'
@@ -62,24 +62,24 @@ jobs:
- name: Load corpus manifest
id: corpus
run: |
echo "corpus_path=bench/competitors/corpus/corpus-manifest.json" >> $GITHUB_OUTPUT
echo "corpus_path=src/__Tests/__Benchmarks/competitors/corpus/corpus-manifest.json" >> $GITHUB_OUTPUT
- name: Run Stella Ops scanner
run: |
echo "Running Stella Ops scanner on corpus..."
# TODO: Implement actual scan command
# stella scan --corpus ${{ steps.corpus.outputs.corpus_path }} --output bench/results/stellaops.json
# stella scan --corpus ${{ steps.corpus.outputs.corpus_path }} --output src/__Tests/__Benchmarks/results/stellaops.json
- name: Run Trivy on corpus
run: |
echo "Running Trivy on corpus images..."
# Process each image in corpus
mkdir -p bench/results/trivy
mkdir -p src/__Tests/__Benchmarks/results/trivy
- name: Run Grype on corpus
run: |
echo "Running Grype on corpus images..."
mkdir -p bench/results/grype
mkdir -p src/__Tests/__Benchmarks/results/grype
- name: Calculate metrics
run: |
@@ -87,14 +87,14 @@ jobs:
# dotnet run --project src/Scanner/__Libraries/StellaOps.Scanner.Benchmark \
# --calculate-metrics \
# --ground-truth ${{ steps.corpus.outputs.corpus_path }} \
# --results bench/results/ \
# --output bench/results/metrics.json
# --results src/__Tests/__Benchmarks/results/ \
# --output src/__Tests/__Benchmarks/results/metrics.json
- name: Generate comparison report
run: |
echo "Generating comparison report..."
mkdir -p bench/results
cat > bench/results/summary.json << 'EOF'
mkdir -p src/__Tests/__Benchmarks/results
cat > src/__Tests/__Benchmarks/results/summary.json << 'EOF'
{
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
"competitors": ["trivy", "grype", "syft"],
@@ -106,7 +106,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: benchmark-results-${{ github.run_id }}
path: bench/results/
path: src/__Tests/__Benchmarks/results/
retention-days: 90
- name: Update claims index
@@ -115,7 +115,7 @@ jobs:
echo "Updating claims index with new evidence..."
# dotnet run --project src/Scanner/__Libraries/StellaOps.Scanner.Benchmark \
# --update-claims \
# --metrics bench/results/metrics.json \
# --metrics src/__Tests/__Benchmarks/results/metrics.json \
# --output docs/claims-index.md
- name: Comment on PR
@@ -124,8 +124,8 @@ jobs:
with:
script: |
const fs = require('fs');
const metrics = fs.existsSync('bench/results/metrics.json')
? JSON.parse(fs.readFileSync('bench/results/metrics.json', 'utf8'))
const metrics = fs.existsSync('src/__Tests/__Benchmarks/results/metrics.json')
? JSON.parse(fs.readFileSync('src/__Tests/__Benchmarks/results/metrics.json', 'utf8'))
: { status: 'pending' };
const body = `## Benchmark Results
@@ -160,7 +160,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: benchmark-results-${{ github.run_id }}
path: bench/results/
path: src/__Tests/__Benchmarks/results/
- name: Verify all claims
run: |

View File

@@ -682,13 +682,13 @@ PY
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Restore dependencies
run: dotnet restore tests/security/StellaOps.Security.Tests/StellaOps.Security.Tests.csproj
run: dotnet restore src/__Tests/security/StellaOps.Security.Tests/StellaOps.Security.Tests.csproj
- name: Run OWASP security tests
run: |
set -euo pipefail
echo "::group::Running security tests"
dotnet test tests/security/StellaOps.Security.Tests/StellaOps.Security.Tests.csproj \
dotnet test src/__Tests/security/StellaOps.Security.Tests/StellaOps.Security.Tests.csproj \
--no-restore \
--logger "trx;LogFileName=security-tests.trx" \
--results-directory ./security-test-results \

View File

@@ -10,9 +10,9 @@ on:
branches: [ main ]
paths:
- 'src/**'
- 'tests/integration/StellaOps.Integration.Determinism/**'
- 'tests/baselines/determinism/**'
- 'bench/golden-corpus/**'
- 'src/__Tests/Integration/StellaOps.Integration.Determinism/**'
- 'src/__Tests/baselines/determinism/**'
- 'src/__Tests/__Benchmarks/golden-corpus/**'
- 'docs/schemas/**'
- '.gitea/workflows/determinism-gate.yml'
pull_request:
@@ -40,7 +40,7 @@ env:
DOTNET_VERSION: '10.0.100'
BUILD_CONFIGURATION: Release
DETERMINISM_OUTPUT_DIR: ${{ github.workspace }}/out/determinism
BASELINE_DIR: tests/baselines/determinism
BASELINE_DIR: src/__Tests/baselines/determinism
jobs:
# ===========================================================================
@@ -70,8 +70,8 @@ jobs:
set -e
SCHEMA="docs/schemas/cyclonedx-bom-1.6.schema.json"
FIXTURE_DIRS=(
"bench/golden-corpus"
"tests/fixtures"
"src/__Tests/__Benchmarks/golden-corpus"
"src/__Tests/fixtures"
"seed-data"
)
@@ -163,7 +163,7 @@ jobs:
- name: Run determinism tests
id: tests
run: |
dotnet test tests/integration/StellaOps.Integration.Determinism/StellaOps.Integration.Determinism.csproj \
dotnet test src/__Tests/Integration/StellaOps.Integration.Determinism/StellaOps.Integration.Determinism.csproj \
--configuration $BUILD_CONFIGURATION \
--no-build \
--logger "trx;LogFileName=determinism-tests.trx" \

View File

@@ -12,8 +12,8 @@ on:
pull_request:
paths:
- 'src/**'
- 'tests/integration/StellaOps.Integration.E2E/**'
- 'tests/fixtures/**'
- 'src/__Tests/Integration/StellaOps.Integration.E2E/**'
- 'src/__Tests/fixtures/**'
- '.gitea/workflows/e2e-reproducibility.yml'
push:
branches:
@@ -21,7 +21,7 @@ on:
- develop
paths:
- 'src/**'
- 'tests/integration/StellaOps.Integration.E2E/**'
- 'src/__Tests/Integration/StellaOps.Integration.E2E/**'
schedule:
# Nightly at 2am UTC
- cron: '0 2 * * *'
@@ -80,15 +80,15 @@ jobs:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Restore dependencies
run: dotnet restore tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj
run: dotnet restore src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj
- name: Build E2E tests
run: dotnet build tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj --no-restore -c Release
run: dotnet build src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj --no-restore -c Release
- name: Run E2E reproducibility tests
id: run-tests
run: |
dotnet test tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj \
dotnet test src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj \
--no-build \
-c Release \
--logger "trx;LogFileName=e2e-results.trx" \
@@ -145,15 +145,15 @@ jobs:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Restore dependencies
run: dotnet restore tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj
run: dotnet restore src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj
- name: Build E2E tests
run: dotnet build tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj --no-restore -c Release
run: dotnet build src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj --no-restore -c Release
- name: Run E2E reproducibility tests
id: run-tests
run: |
dotnet test tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj `
dotnet test src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj `
--no-build `
-c Release `
--logger "trx;LogFileName=e2e-results.trx" `
@@ -211,21 +211,21 @@ jobs:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Restore dependencies
run: dotnet restore tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj
run: dotnet restore src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj
- name: Build E2E tests
run: dotnet build tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj --no-restore -c Release
run: dotnet build src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj --no-restore -c Release
- name: Run E2E reproducibility tests
id: run-tests
run: |
dotnet test tests/integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj \
dotnet test src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj \
--no-build \
-c Release \
--logger "trx;LogFileName=e2e-results.trx" \
--logger "console;verbosity=detailed" \
--results-directory ./TestResults
# Extract hashes for comparison
echo "verdict_hash=$(cat ./TestResults/verdict_hash.txt 2>/dev/null || echo 'NOT_FOUND')" >> $GITHUB_OUTPUT
echo "manifest_hash=$(cat ./TestResults/manifest_hash.txt 2>/dev/null || echo 'NOT_FOUND')" >> $GITHUB_OUTPUT
@@ -387,7 +387,7 @@ jobs:
run: |
echo "=== Golden Baseline Comparison ==="
baseline_file="./bench/determinism/golden-baseline/e2e-hashes.json"
baseline_file="./src/__Tests/__Benchmarks/determinism/golden-baseline/e2e-hashes.json"
if [ ! -f "$baseline_file" ]; then
echo "⚠️ Golden baseline not found. Skipping comparison."
@@ -419,9 +419,9 @@ jobs:
- name: Update golden baseline (if requested)
if: github.event.inputs.update_baseline == 'true'
run: |
mkdir -p ./bench/determinism/golden-baseline
cat > ./bench/determinism/golden-baseline/e2e-hashes.json << EOF
mkdir -p ./src/__Tests/__Benchmarks/determinism/golden-baseline
cat > ./src/__Tests/__Benchmarks/determinism/golden-baseline/e2e-hashes.json << EOF
{
"verdict_hash": "$(cat ./current/verdict_hash.txt 2>/dev/null || echo 'NOT_SET')",
"manifest_hash": "$(cat ./current/manifest_hash.txt 2>/dev/null || echo 'NOT_SET')",
@@ -433,14 +433,14 @@ jobs:
EOF
echo "Golden baseline updated:"
cat ./bench/determinism/golden-baseline/e2e-hashes.json
cat ./src/__Tests/__Benchmarks/determinism/golden-baseline/e2e-hashes.json
- name: Commit baseline update
if: github.event.inputs.update_baseline == 'true'
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "chore: Update E2E reproducibility golden baseline"
file_pattern: bench/determinism/golden-baseline/e2e-hashes.json
file_pattern: src/__Tests/__Benchmarks/determinism/golden-baseline/e2e-hashes.json
# =============================================================================
# Job: Status check gate

View File

@@ -8,8 +8,8 @@ on:
branches: [main, develop]
paths:
- 'src/**'
- 'tests/integration/**'
- 'bench/golden-corpus/**'
- 'src/__Tests/Integration/**'
- 'src/__Tests/__Benchmarks/golden-corpus/**'
push:
branches: [main]
workflow_dispatch:
@@ -60,14 +60,14 @@ jobs:
dotnet-version: "10.0.100"
- name: Restore dependencies
run: dotnet restore tests/integration/**/*.csproj
run: dotnet restore src/__Tests/Integration/**/*.csproj
- name: Build integration tests
run: dotnet build tests/integration/**/*.csproj --configuration Release --no-restore
run: dotnet build src/__Tests/Integration/**/*.csproj --configuration Release --no-restore
- name: Run Proof Chain Tests
run: |
dotnet test tests/integration/StellaOps.Integration.ProofChain \
dotnet test src/__Tests/Integration/StellaOps.Integration.ProofChain \
--configuration Release \
--no-build \
--logger "trx;LogFileName=proofchain.trx" \
@@ -77,7 +77,7 @@ jobs:
- name: Run Reachability Tests
run: |
dotnet test tests/integration/StellaOps.Integration.Reachability \
dotnet test src/__Tests/Integration/StellaOps.Integration.Reachability \
--configuration Release \
--no-build \
--logger "trx;LogFileName=reachability.trx" \
@@ -85,7 +85,7 @@ jobs:
- name: Run Unknowns Workflow Tests
run: |
dotnet test tests/integration/StellaOps.Integration.Unknowns \
dotnet test src/__Tests/Integration/StellaOps.Integration.Unknowns \
--configuration Release \
--no-build \
--logger "trx;LogFileName=unknowns.trx" \
@@ -93,7 +93,7 @@ jobs:
- name: Run Determinism Tests
run: |
dotnet test tests/integration/StellaOps.Integration.Determinism \
dotnet test src/__Tests/Integration/StellaOps.Integration.Determinism \
--configuration Release \
--no-build \
--logger "trx;LogFileName=determinism.trx" \
@@ -139,7 +139,7 @@ jobs:
import hashlib
import os
manifest_path = 'bench/golden-corpus/corpus-manifest.json'
manifest_path = 'src/__Tests/__Benchmarks/golden-corpus/corpus-manifest.json'
with open(manifest_path) as f:
manifest = json.load(f)
@@ -148,7 +148,7 @@ jobs:
errors = []
for case in manifest.get('cases', []):
case_path = os.path.join('bench/golden-corpus', case['path'])
case_path = os.path.join('src/__Tests/__Benchmarks/golden-corpus', case['path'])
if not os.path.isdir(case_path):
errors.append(f'Missing case directory: {case_path}')
else:
@@ -168,7 +168,7 @@ jobs:
- name: Run corpus scoring tests
run: |
dotnet test tests/integration/StellaOps.Integration.Determinism \
dotnet test src/__Tests/Integration/StellaOps.Integration.Determinism \
--filter "Category=GoldenCorpus" \
--configuration Release \
--logger "trx;LogFileName=corpus.trx" \
@@ -194,7 +194,7 @@ jobs:
- name: Run full determinism suite
run: |
dotnet test tests/integration/StellaOps.Integration.Determinism \
dotnet test src/__Tests/Integration/StellaOps.Integration.Determinism \
--configuration Release \
--logger "trx;LogFileName=determinism-full.trx" \
--results-directory ./TestResults
@@ -203,7 +203,7 @@ jobs:
run: |
# Run scoring 3 times and compare hashes
for i in 1 2 3; do
dotnet test tests/integration/StellaOps.Integration.Determinism \
dotnet test src/__Tests/Integration/StellaOps.Integration.Determinism \
--filter "FullyQualifiedName~IdenticalInput_ProducesIdenticalHash" \
--results-directory ./TestResults/run-$i
done
@@ -236,7 +236,7 @@ jobs:
- name: Run tests with coverage
run: |
dotnet test tests/integration/**/*.csproj \
dotnet test src/__Tests/Integration/**/*.csproj \
--configuration Release \
--collect:"XPlat Code Coverage" \
--results-directory ./TestResults/Coverage
@@ -312,7 +312,7 @@ jobs:
- name: Run performance tests
run: |
dotnet test tests/integration/StellaOps.Integration.Performance \
dotnet test src/__Tests/Integration/StellaOps.Integration.Performance \
--configuration Release \
--logger "trx;LogFileName=performance.trx" \
--results-directory ./TestResults
@@ -323,15 +323,15 @@ jobs:
name: performance-report
path: |
TestResults/**
tests/integration/StellaOps.Integration.Performance/output/**
src/__Tests/Integration/StellaOps.Integration.Performance/output/**
- name: Check for regressions
run: |
# Check if any test exceeded 20% threshold
if [ -f "tests/integration/StellaOps.Integration.Performance/output/performance-report.json" ]; then
if [ -f "src/__Tests/Integration/StellaOps.Integration.Performance/output/performance-report.json" ]; then
python3 -c "
import json
with open('tests/integration/StellaOps.Integration.Performance/output/performance-report.json') as f:
with open('src/__Tests/Integration/StellaOps.Integration.Performance/output/performance-report.json') as f:
report = json.load(f)
regressions = [m for m in report.get('Metrics', []) if m.get('DeltaPercent', 0) > 20]
if regressions:
@@ -363,7 +363,7 @@ jobs:
- name: Run air-gap tests
run: |
dotnet test tests/integration/StellaOps.Integration.AirGap \
dotnet test src/__Tests/Integration/StellaOps.Integration.AirGap \
--configuration Release \
--logger "trx;LogFileName=airgap.trx" \
--results-directory ./TestResults

View File

@@ -5,7 +5,7 @@ on:
paths:
- 'src/Scanner/**'
- 'src/Excititor/**'
- 'tests/interop/**'
- 'src/__Tests/interop/**'
schedule:
- cron: '0 6 * * *' # Nightly at 6 AM UTC
workflow_dispatch:
@@ -59,11 +59,11 @@ jobs:
run: dotnet build src/Cli/StellaOps.Cli/StellaOps.Cli.csproj -c Release
- name: Build interop tests
run: dotnet build tests/interop/StellaOps.Interop.Tests/StellaOps.Interop.Tests.csproj
run: dotnet build src/__Tests/interop/StellaOps.Interop.Tests/StellaOps.Interop.Tests.csproj
- name: Run interop tests
run: |
dotnet test tests/interop/StellaOps.Interop.Tests \
dotnet test src/__Tests/interop/StellaOps.Interop.Tests \
--filter "Format=${{ matrix.format }}" \
--logger "trx;LogFileName=interop-${{ matrix.format }}.trx" \
--logger "console;verbosity=detailed" \

View File

@@ -5,7 +5,7 @@ on:
paths:
- 'src/AirGap/**'
- 'src/Scanner/**'
- 'tests/offline/**'
- 'src/__Tests/offline/**'
schedule:
- cron: '0 4 * * *' # Nightly at 4 AM UTC
workflow_dispatch:
@@ -48,7 +48,7 @@ jobs:
dotnet build src/__Libraries/StellaOps.Testing.AirGap/StellaOps.Testing.AirGap.csproj
# Build offline E2E tests
dotnet build tests/offline/StellaOps.Offline.E2E.Tests/StellaOps.Offline.E2E.Tests.csproj
dotnet build src/__Tests/offline/StellaOps.Offline.E2E.Tests/StellaOps.Offline.E2E.Tests.csproj
- name: Run offline E2E tests with network isolation
run: |
@@ -56,7 +56,7 @@ jobs:
export STELLAOPS_OFFLINE_BUNDLE=$(pwd)/offline-bundle
# Run tests
dotnet test tests/offline/StellaOps.Offline.E2E.Tests \
dotnet test src/__Tests/offline/StellaOps.Offline.E2E.Tests \
--logger "trx;LogFileName=offline-e2e.trx" \
--logger "console;verbosity=detailed" \
--results-directory ./results

View File

@@ -79,7 +79,7 @@ jobs:
- name: Build parity tests
run: |
dotnet build tests/parity/StellaOps.Parity.Tests/StellaOps.Parity.Tests.csproj -c Release
dotnet build src/__Tests/parity/StellaOps.Parity.Tests/StellaOps.Parity.Tests.csproj -c Release
- name: Run parity tests
id: parity
@@ -87,8 +87,8 @@ jobs:
mkdir -p ${{ env.PARITY_RESULTS_PATH }}
RUN_ID=$(date -u +%Y%m%dT%H%M%SZ)
echo "run_id=${RUN_ID}" >> $GITHUB_OUTPUT
dotnet test tests/parity/StellaOps.Parity.Tests/StellaOps.Parity.Tests.csproj \
dotnet test src/__Tests/parity/StellaOps.Parity.Tests/StellaOps.Parity.Tests.csproj \
-c Release \
--no-build \
--logger "trx;LogFileName=parity-results.trx" \
@@ -112,7 +112,7 @@ jobs:
if: ${{ github.event_name != 'workflow_dispatch' || inputs.enable_drift_detection == 'true' }}
run: |
# Analyze drift from historical results
dotnet run --project tests/parity/StellaOps.Parity.Tests/StellaOps.Parity.Tests.csproj \
dotnet run --project src/__Tests/parity/StellaOps.Parity.Tests/StellaOps.Parity.Tests.csproj \
--no-build \
-- analyze-drift \
--results-path ${{ env.PARITY_RESULTS_PATH }} \

View File

@@ -5,16 +5,16 @@ on:
push:
branches: [ main ]
paths:
- 'tests/reachability/corpus/**'
- 'tests/reachability/fixtures/**'
- 'tests/reachability/StellaOps.Reachability.FixtureTests/**'
- 'src/__Tests/reachability/corpus/**'
- 'src/__Tests/reachability/fixtures/**'
- 'src/__Tests/reachability/StellaOps.Reachability.FixtureTests/**'
- 'scripts/reachability/**'
- '.gitea/workflows/reachability-corpus-ci.yml'
pull_request:
paths:
- 'tests/reachability/corpus/**'
- 'tests/reachability/fixtures/**'
- 'tests/reachability/StellaOps.Reachability.FixtureTests/**'
- 'src/__Tests/reachability/corpus/**'
- 'src/__Tests/reachability/fixtures/**'
- 'src/__Tests/reachability/StellaOps.Reachability.FixtureTests/**'
- 'scripts/reachability/**'
- '.gitea/workflows/reachability-corpus-ci.yml'
@@ -41,7 +41,7 @@ jobs:
- name: Verify corpus manifest integrity
run: |
echo "Verifying corpus manifest..."
cd tests/reachability/corpus
cd src/__Tests/reachability/corpus
if [ ! -f manifest.json ]; then
echo "::error::Corpus manifest.json not found"
exit 1
@@ -53,7 +53,7 @@ jobs:
- name: Verify reachbench index integrity
run: |
echo "Verifying reachbench fixtures..."
cd tests/reachability/fixtures/reachbench-2025-expanded
cd src/__Tests/reachability/fixtures/reachbench-2025-expanded
if [ ! -f INDEX.json ]; then
echo "::error::Reachbench INDEX.json not found"
exit 1
@@ -63,14 +63,14 @@ jobs:
echo "INDEX is valid JSON"
- name: Restore test project
run: dotnet restore tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj --configfile nuget.config
run: dotnet restore src/__Tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj --configfile nuget.config
- name: Build test project
run: dotnet build tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj -c Release --no-restore
run: dotnet build src/__Tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj -c Release --no-restore
- name: Run corpus fixture tests
run: |
dotnet test tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj \
dotnet test src/__Tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj \
-c Release \
--no-build \
--logger "trx;LogFileName=corpus-results.trx" \
@@ -79,7 +79,7 @@ jobs:
- name: Run reachbench fixture tests
run: |
dotnet test tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj \
dotnet test src/__Tests/reachability/StellaOps.Reachability.FixtureTests/StellaOps.Reachability.FixtureTests.csproj \
-c Release \
--no-build \
--logger "trx;LogFileName=reachbench-results.trx" \
@@ -94,7 +94,7 @@ jobs:
scripts/reachability/verify_corpus_hashes.sh
else
echo "Hash verification script not found, using inline verification..."
cd tests/reachability/corpus
cd src/__Tests/reachability/corpus
python3 << 'EOF'
import json
import hashlib
@@ -146,7 +146,7 @@ jobs:
- name: Validate ground-truth schema version
run: |
echo "Validating ground-truth files..."
cd tests/reachability
cd src/__Tests/reachability
python3 << 'EOF'
import json
import os
@@ -216,7 +216,7 @@ jobs:
- name: Verify JSON determinism (sorted keys, no trailing whitespace)
run: |
echo "Checking JSON determinism..."
cd tests/reachability
cd src/__Tests/reachability
python3 << 'EOF'
import json
import os

View File

@@ -7,7 +7,7 @@ on:
- 'src/__Libraries/StellaOps.Canonicalization/**'
- 'src/__Libraries/StellaOps.Replay/**'
- 'src/__Libraries/StellaOps.Testing.Manifests/**'
- 'bench/golden-corpus/**'
- 'src/__Tests/__Benchmarks/golden-corpus/**'
jobs:
replay-verification:
@@ -26,7 +26,7 @@ jobs:
- name: Run replay verification on corpus
run: |
dotnet run --project src/Cli/StellaOps.Cli -- replay batch \
--corpus bench/golden-corpus/ \
--corpus src/__Tests/__Benchmarks/golden-corpus/ \
--output results/ \
--verify-determinism \
--fail-on-diff

View File

@@ -110,7 +110,7 @@ jobs:
run: |
mkdir -p results
k6 run tests/load/router/spike-test.js \
k6 run src/__Tests/load/router/spike-test.js \
-e ROUTER_URL=${{ env.ROUTER_URL }} \
--out json=results/k6-results.json \
--summary-export results/k6-summary.json \
@@ -171,8 +171,8 @@ jobs:
- name: Build Chaos Tests
run: |
dotnet restore tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj
dotnet build tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj -c Release --no-restore
dotnet restore src/__Tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj
dotnet build src/__Tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj -c Release --no-restore
- name: Start Router for Tests
run: |
@@ -181,7 +181,7 @@ jobs:
- name: Run Chaos Unit Tests
run: |
dotnet test tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj \
dotnet test src/__Tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj \
-c Release \
--no-build \
--logger "trx;LogFileName=chaos-results.trx" \
@@ -220,7 +220,7 @@ jobs:
- name: Run Valkey Failure Tests
run: |
dotnet test tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj \
dotnet test src/__Tests/chaos/StellaOps.Chaos.Router.Tests/StellaOps.Chaos.Router.Tests.csproj \
-c Release \
--filter "Category=Valkey" \
--logger "trx;LogFileName=valkey-results.trx" \

View File

@@ -128,6 +128,6 @@ jobs:
- name: Run determinism tests
run: |
# Run scanner on same input twice, compare outputs
if [ -d "tests/fixtures/determinism" ]; then
if [ -d "src/__Tests/fixtures/determinism" ]; then
dotnet test --filter "Category=Determinism" --verbosity normal
fi

View File

@@ -10,7 +10,7 @@ name: Schema Validation
on:
pull_request:
paths:
- 'bench/golden-corpus/**'
- 'src/__Tests/__Benchmarks/golden-corpus/**'
- 'src/Scanner/**'
- 'docs/schemas/**'
- 'scripts/validate-*.sh'
@@ -18,7 +18,7 @@ on:
push:
branches: [main]
paths:
- 'bench/golden-corpus/**'
- 'src/__Tests/__Benchmarks/golden-corpus/**'
- 'src/Scanner/**'
- 'docs/schemas/**'
- 'scripts/validate-*.sh'
@@ -45,8 +45,8 @@ jobs:
set -e
SCHEMA="docs/schemas/cyclonedx-bom-1.6.schema.json"
FIXTURE_DIRS=(
"bench/golden-corpus"
"tests/fixtures"
"src/__Tests/__Benchmarks/golden-corpus"
"src/__Tests/fixtures"
"seed-data"
)
@@ -112,8 +112,8 @@ jobs:
set -e
SCHEMA="docs/schemas/spdx-jsonld-3.0.1.schema.json"
FIXTURE_DIRS=(
"bench/golden-corpus"
"tests/fixtures"
"src/__Tests/__Benchmarks/golden-corpus"
"src/__Tests/fixtures"
"seed-data"
)
@@ -184,9 +184,9 @@ jobs:
set -e
SCHEMA="docs/schemas/openvex-0.2.0.schema.json"
FIXTURE_DIRS=(
"bench/golden-corpus"
"bench/vex-lattice"
"tests/fixtures"
"src/__Tests/__Benchmarks/golden-corpus"
"src/__Tests/__Benchmarks/vex-lattice"
"src/__Tests/fixtures"
"seed-data"
)
@@ -249,7 +249,7 @@ jobs:
run: |
set -e
SCHEMA="docs/schemas/cyclonedx-bom-1.6.schema.json"
INVALID_DIR="tests/fixtures/invalid"
INVALID_DIR="src/__Tests/fixtures/invalid"
if [ ! -d "$INVALID_DIR" ]; then
echo "::warning::No invalid fixtures directory found at $INVALID_DIR"

View File

@@ -9,7 +9,7 @@ on:
branches: [ main, develop ]
paths:
- 'src/**'
- 'tests/**'
- 'src/__Tests/**'
- 'scripts/test-lane.sh'
- '.gitea/workflows/test-lanes.yml'
push:
@@ -92,15 +92,15 @@ jobs:
include-prerelease: true
- name: Restore architecture tests
run: dotnet restore tests/architecture/StellaOps.Architecture.Tests/StellaOps.Architecture.Tests.csproj
run: dotnet restore src/__Tests/architecture/StellaOps.Architecture.Tests/StellaOps.Architecture.Tests.csproj
- name: Build architecture tests
run: dotnet build tests/architecture/StellaOps.Architecture.Tests/StellaOps.Architecture.Tests.csproj --configuration $BUILD_CONFIGURATION --no-restore
run: dotnet build src/__Tests/architecture/StellaOps.Architecture.Tests/StellaOps.Architecture.Tests.csproj --configuration $BUILD_CONFIGURATION --no-restore
- name: Run Architecture tests
run: |
mkdir -p "$TEST_RESULTS_DIR"
dotnet test tests/architecture/StellaOps.Architecture.Tests/StellaOps.Architecture.Tests.csproj \
dotnet test src/__Tests/architecture/StellaOps.Architecture.Tests/StellaOps.Architecture.Tests.csproj \
--configuration $BUILD_CONFIGURATION \
--no-build \
--logger "trx;LogFileName=architecture-tests.trx" \

View File

@@ -4,14 +4,14 @@ on:
pull_request:
paths:
- 'scripts/vex/**'
- 'tests/Vex/ProofBundles/**'
- 'src/__Tests/Vex/ProofBundles/**'
- 'docs/benchmarks/vex-evidence-playbook*'
- '.gitea/workflows/vex-proof-bundles.yml'
push:
branches: [ main ]
paths:
- 'scripts/vex/**'
- 'tests/Vex/ProofBundles/**'
- 'src/__Tests/Vex/ProofBundles/**'
- 'docs/benchmarks/vex-evidence-playbook*'
- '.gitea/workflows/vex-proof-bundles.yml'
@@ -36,5 +36,5 @@ jobs:
env:
PYTHONHASHSEED: "0"
run: |
chmod +x tests/Vex/ProofBundles/test_verify_sample.sh
tests/Vex/ProofBundles/test_verify_sample.sh
chmod +x src/__Tests/Vex/ProofBundles/test_verify_sample.sh
src/__Tests/Vex/ProofBundles/test_verify_sample.sh