Files
seaweedfs/weed/storage/blockvol/testrunner/scripts/unblock-windows.ps1
T
Ping QiuandClaude Opus 4.6 da1b81d1c9 feat: CP8-3-1 durability modes + testrunner platform + 21 adversarial tests
Durability mode implementation (sync_all, sync_quorum, best_effort):
- DurabilityMode type with superblock persistence, parse/validate/string
- MakeDistributedSync mode-aware barrier enforcement in dist_group_commit
- blockerr sentinel package (ErrDurabilityBarrierFailed, ErrDurabilityQuorumLost)
- gRPC create path: mode validation, idempotent create consistency, partial cleanup
- F1: strict mode rejects partial replica provisioning with cleanup
- F3: empty heartbeat does not overwrite persisted strict mode
- F4: SCSI error mapping uses errors.Is sentinels (not string matching)
- Proto/wire/blockapi/CLI/UI plumbing for durability_mode field
- Observability dashboard: cluster health cards + per-volume columns

Testrunner platform (YAML-driven integration test framework):
- Engine, parser, registry, reporter (JUnit XML + HTML), metrics scraping
- 52 registered actions: block, iSCSI, I/O, fault injection, assertions
- Baseline regression framework with 7 hard-fail conditions
- 15 YAML scenarios (smoke, crash, HA, fault, consistency, snapshot)
- 49 unit tests for testrunner internals

QA adversarial suite (21 tests, all PASS):
- Idempotent create mode/RF mismatch detection
- Heartbeat mode downgrade prevention (F3)
- sync_all/sync_quorum partial replica enforcement (F1)
- Concurrent create race safety
- Failover/expand mode preservation
- Cleanup resilience when delete fails
- Master restart auto-register mode handling
- Superblock roundtrip all 3 modes
- Validate edge cases (mode×RF matrix)
- RequiredReplicas quorum math verification
- Sentinel error categorization

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 01:06:51 -08:00

24 lines
819 B
PowerShell

# unblock-windows.ps1 — Unblock downloaded binaries and add Defender exclusion.
# Run as Administrator: powershell -ExecutionPolicy Bypass -File .\unblock-windows.ps1
#
# This is needed because Windows SmartScreen blocks unsigned binaries downloaded
# from the internet. Code signing is future work (requires certificate).
$ErrorActionPreference = "Stop"
$dir = (Get-Location).Path
Write-Host "Unblocking binaries in $dir ..."
$binaries = @("sw-test-runner.exe", "iscsi-target.exe", "weed.exe")
foreach ($bin in $binaries) {
$path = Join-Path $dir $bin
if (Test-Path $path) {
Unblock-File $path
Write-Host " Unblocked: $bin"
}
}
Write-Host "Adding Defender exclusion for $dir ..."
Add-MpPreference -ExclusionPath $dir
Write-Host "Done. Binaries should no longer trigger SmartScreen."