Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
344 commits
Select commit Hold shift + click to select a range
6caa9f4
test: migrate bounded capacity faults and quota recovery
cxymds Oct 11, 2026
6072cab
docs: record verified native regression results
cxymds Oct 11, 2026
601f249
test: migrate network partition and lock quorum validation
cxymds Oct 11, 2026
314bc36
test: retain exact kernel rule mismatch diagnostics
cxymds Oct 11, 2026
f8b538a
test: match the canonical nft payload rule representation
cxymds Oct 11, 2026
7698230
test: refuse unguarded IPv6 peer aliases before partition
cxymds Oct 11, 2026
9b93e75
docs: record network kernel validation and live queue
cxymds Oct 11, 2026
c24d590
test: migrate exact multi-pool Heal target isolation
cxymds Oct 11, 2026
e3f603f
test: retain three acknowledged versions in each H06 DV key
cxymds Oct 11, 2026
6f49015
test: collect exact candidate conflicting authority regressions
cxymds Oct 11, 2026
f63f3ec
test: allow exact read-only H5 pool identity observations
cxymds Oct 11, 2026
5ab0985
docs: record complete stop-token live evidence and H5 CI
cxymds Oct 11, 2026
07627ad
test(validation): migrate conflicting subquorum authority case
cxymds Oct 11, 2026
e024ade
test(validation): verify original hosted native execution paths
cxymds Oct 11, 2026
ad464b7
test(validation): preserve original shard integrity commitments
cxymds Oct 11, 2026
0766f02
test(validation): add candidate bound shared reference fixture codec
cxymds Oct 11, 2026
cce6971
test(validation): provide valid shared-version codec timestamps
cxymds Oct 11, 2026
6cc8cb7
test(validation): preserve shared-codec rejection inputs
cxymds Oct 11, 2026
b0fc7d1
feat(validation): migrate complete C10 orphan safety branches
cxymds Oct 11, 2026
6f778eb
docs(validation): record C10 Linux gates and exact F04 failures
cxymds Oct 11, 2026
23953a9
fix(validation): verify each shared ACK through its own metadata
cxymds Oct 11, 2026
7128b50
feat(validation): preserve all paired A10 option contracts
cxymds Oct 11, 2026
b75f4a7
feat(validation): inspect current Heal resources without mutation
cxymds Oct 11, 2026
e40fd9d
feat(validation): preserve I04 pressure and audited quota recovery
cxymds Oct 11, 2026
6ef733d
fix(validation): resume exact interrupted quota recovery
cxymds Oct 11, 2026
aba6f5c
test(validation): collect exact manager persistence regressions
cxymds Oct 11, 2026
0fa6f54
test(validation): add bounded durable-record fault backend
cxymds Oct 11, 2026
b7c757e
test(validation): bind original Admin checkpoint observations
cxymds Oct 11, 2026
1ab525f
test(validation): verify scoped manager evidence before fleet use
cxymds Oct 11, 2026
9761f64
test(validation): preserve captured checkpoint generations and recovery
cxymds Oct 11, 2026
9670021
test(validation): bind journal failures to private bounded volumes
cxymds Oct 11, 2026
ac3a5ea
test(validation): bind root admission across fault boundary
cxymds Oct 11, 2026
bef168b
docs(validation): reconcile current migration evidence
cxymds Oct 11, 2026
ad5cad0
fix(validation): accept explicit root bucket journal events
cxymds Oct 11, 2026
15442ed
docs(validation): reconcile live queue status
cxymds Oct 11, 2026
0052ea1
fix(validation): recover unapplied performance faults
cxymds Oct 11, 2026
2c94021
fix(validation): include performance load bucket in recovery
cxymds Oct 11, 2026
7d84677
fix(validation): extend performance lease and make cleanup idempotent
cxymds Oct 11, 2026
f56e89a
docs(validation): reconcile cleanup and lease evidence
cxymds Oct 11, 2026
e4fa749
fix(validation): recover expired network gates safely
cxymds Oct 11, 2026
e8a87ab
fix(validation): stop expired network units before release
cxymds Oct 11, 2026
7b91c8f
docs(validation): record network cleanup evidence
cxymds Oct 11, 2026
2249cd4
fix(validation): wait for authoritative multi-pool quota usage
cxymds Oct 11, 2026
d688cf5
fix(validation): read multi-pool quota config without scanner
cxymds Oct 11, 2026
bcfae38
fix(validation): wait for multi-pool metadata convergence
cxymds Oct 11, 2026
ab9426c
fix(validation): bind H06 quota proof to management endpoint
cxymds Oct 11, 2026
75b2451
docs(validation): reconcile latest live evidence
cxymds Oct 11, 2026
d502d3e
feat(validation): migrate A09 nolock safety executor
cxymds Oct 11, 2026
0cef8a8
feat(validation): migrate G01 and G03 version races
cxymds Oct 11, 2026
ec26bd3
feat(validation): migrate G02 versioned put race
cxymds Oct 11, 2026
5d3840c
docs(validation): record G02 helper revision
cxymds Oct 11, 2026
a38281e
feat(validation): migrate G02 versioned put race
cxymds Oct 11, 2026
478e345
feat(validation): migrate G06 copy metadata races
cxymds Oct 11, 2026
7e6d70c
docs(validation): restore historical evidence references
cxymds Oct 11, 2026
1071541
fix(validation): bind G06 DS source and target keys
cxymds Oct 11, 2026
30df613
docs(validation): record G06 key binding helper
cxymds Oct 11, 2026
6a8b8ea
feat(validation): migrate G05 multipart race
cxymds Oct 11, 2026
e6d3e8b
feat(validation): migrate G04 marker races
cxymds Oct 11, 2026
47534b7
docs(validation): record G04 and G05 executors
cxymds Oct 11, 2026
a6af7e6
docs(validation): pin latest helper revision
cxymds Oct 11, 2026
6f91210
fix(validation): bind G04 batch delete receipts
cxymds Oct 11, 2026
c844fba
docs(validation): pin G04 receipt fix
cxymds Oct 11, 2026
58e760b
docs(validation): correct dispatch coverage count
cxymds Oct 11, 2026
3b70d8e
feat(validation): add disabled Heal environment scenarios
cxymds Oct 11, 2026
0334abf
docs(validation): reconcile audited pool tail and live backlog
cxymds Oct 12, 2026
ccef050
fix(validation): verify streamed MPU payload after full restart
cxymds Oct 12, 2026
dbe74ec
fix(validation): retain exact negative Heal task outcomes
cxymds Oct 12, 2026
5ceb893
fix(validation): match failed quorum tasks to canonical terminals
cxymds Oct 12, 2026
74cb9ba
test(validation): reconcile mixed Heal outcome prerequisites
cxymds Oct 12, 2026
fd4277c
fix(validation): retain complete overlap task sequence evidence
cxymds Oct 12, 2026
0ba4d6c
docs(validation): update canonical pass census
cxymds Oct 12, 2026
3018a69
docs(validation): record multipart canonical pass
cxymds Oct 12, 2026
0ada86f
test(validation): bind encrypted heal to reviewed candidates
cxymds Oct 12, 2026
b05979d
test(validation): bind manager regressions to candidate source
cxymds Oct 12, 2026
8576360
test(validation): bind native evidence to each candidate
cxymds Oct 12, 2026
e938e1e
docs(validation): update canonical migration census
cxymds Oct 12, 2026
6189cec
test(validation): preserve corrupt checkpoint responsibility
cxymds Oct 12, 2026
74599e5
docs(validation): record audited orphan safety result
cxymds Oct 12, 2026
7c3b114
fix(validation): retain complete read repair journal windows
cxymds Oct 12, 2026
1d8d217
docs(validation): record audited restart and encryption passes
cxymds Oct 12, 2026
5f089da
test(validation): bind manager evidence to payload repair candidate
cxymds Oct 12, 2026
781ad05
test(validation): add stale bucket metadata rejoin flow
cxymds Oct 12, 2026
8ea38a9
fix(validation): preserve read repair admission logs
cxymds Oct 12, 2026
d5a4173
feat(validation): verify exact incarnation storage barriers
cxymds Oct 12, 2026
c9c2b19
test(heal): replay original C11 recovery records safely
cxymds Oct 12, 2026
49ddd30
fix(validation): retain blocked diagnostic results
cxymds Oct 12, 2026
b5634be
fix(heal): bind checkpoint phase to the process environment
cxymds Oct 12, 2026
891f264
test(heal): retain independent C11 replay file witnesses
cxymds Oct 12, 2026
c4fde9a
test(heal): reuse scoped F07 native persistence evidence
cxymds Oct 12, 2026
d1b6492
test(heal): retain original F07 MRF corruption responsibility
cxymds Oct 12, 2026
b3edd31
test(heal): audit retained C11 DeleteBucket refusal
cxymds Oct 12, 2026
d52876c
test(heal): reconcile original F07 stale checkpoint replay
cxymds Oct 12, 2026
15f9000
test(validation): exercise retained checkpoint write failures
cxymds Oct 12, 2026
8733710
fix(validation): audit rejected MRF injections before cleanup
cxymds Oct 12, 2026
b11c9dc
fix(validation): bind actual checkpoint and MRF representations
cxymds Oct 12, 2026
6db679f
fix(validation): preserve internal records in MRF CRC faults
cxymds Oct 12, 2026
3acfb32
fix(validation): sign future checkpoint schema with valid digest
cxymds Oct 12, 2026
e62c3cc
test(validation): collect existing directory fsync regressions
cxymds Oct 12, 2026
c0d69a3
fix(validation): preserve durable journal observation windows
cxymds Oct 12, 2026
27fc6a1
fix(validation): audit advanced MRF fixtures before cleanup
cxymds Oct 12, 2026
ab37b0c
fix(validation): reconcile source-defined heal task timeout
cxymds Oct 12, 2026
f3cdcd1
fix(validation): keep MRF storage accessible during partial writes
cxymds Oct 12, 2026
4aea05d
fix(validation): corrupt every owned MRF replay source
cxymds Oct 12, 2026
9c01cb8
fix(validation): identify mismatched recovery owner markers
cxymds Oct 13, 2026
4bd20d0
fix(validation): bind each MRF injection to its original replica
cxymds Oct 15, 2026
a318234
fix(validation): preserve retained namespace ownership evidence
cxymds Oct 15, 2026
f3f37bd
fix(validation): retain incomplete fixtures before isolating them
cxymds Oct 15, 2026
2e07d1d
test(validation): exercise live legacy unknown outcomes
cxymds Oct 15, 2026
a58c10c
fix(validation): retain source coverage and unknown counter truth
cxymds Oct 15, 2026
492bbc1
test(validation): preserve readonly failure through compensation
cxymds Oct 15, 2026
d74a9fc
fix(validation): retain cancelled pre-admission heal fixtures
cxymds Oct 15, 2026
a00cf74
fix(validation): bind F07 replica census to declared topology
cxymds Oct 15, 2026
dba9f58
test(validation): preserve original opaque metadata probe
cxymds Oct 15, 2026
b293423
fix(validation): check exact deferred retry wire field
cxymds Oct 15, 2026
8a1a002
feat(validation): preserve original version grace outcome procedure
cxymds Oct 15, 2026
6a41278
fix(validation): preserve acknowledged pre-replay grace fixtures
cxymds Oct 15, 2026
2f5ae1e
fix(validation): honor omitted false public truncation flag
cxymds Oct 15, 2026
efa7f8c
test(validation): bind manager prerequisites to corrected candidate
cxymds Oct 15, 2026
7f1caad
feat(validation): admit corrected J02 candidate with exact tools
cxymds Oct 15, 2026
a67801a
fix(validation): bind opaque metadata faults to each physical disk
cxymds Oct 16, 2026
da5dccb
fix(validation): recover audited J02 owner marker metadata
cxymds Oct 16, 2026
72f1443
fix(validation): retain opaque scenes under private run parents
cxymds Oct 16, 2026
52a6949
fix(validation): finish deferred branch at its frozen source boundary
cxymds Oct 16, 2026
9375790
fix(validation): retain acknowledged J02 scenes before legacy writes
cxymds Oct 16, 2026
7c30249
test(validation): pin admin batch receipt fix candidate
cxymds Oct 16, 2026
c21a20b
docs(validation): reconcile current migration acceptance
cxymds Oct 16, 2026
17f41c5
docs(validation): record audited J02 live boundaries
cxymds Oct 16, 2026
d353366
fix(validation): target current ACK in exact object option probes
cxymds Oct 16, 2026
bb1b825
fix(validation): freeze checkpoint owner before fleet observation
cxymds Oct 18, 2026
9dff495
fix(validation): fill bounded tail blocks and extend real fixture work
cxymds Oct 19, 2026
e6c7bff
fix(validation): exhaust private ext4 reserves and retry live census …
cxymds Oct 19, 2026
b16e607
fix(validation): restore source A10 recursive orphan cleanup procedure
cxymds Oct 19, 2026
91d802c
fix(validation): capture checkpoint advance with one held pidfd
cxymds Oct 19, 2026
2e7f2a3
docs(validation): record complete A10 live acceptance
cxymds Oct 19, 2026
82babf7
fix(validation): recover durable write owner before rescan
cxymds Oct 19, 2026
c6dcbe2
test(heal): bind quorum replays to the reviewed GET fix
cxymds Oct 19, 2026
0d93a4c
fix(heal): classify detached file reads as bounded churn
cxymds Oct 19, 2026
e9cc06c
fix(heal): release armed network timers without unloaded workers
cxymds Oct 19, 2026
c67683c
fix(heal): retain request-bound network failure diagnostics
cxymds Oct 19, 2026
4d43a6e
fix(heal): bind network quorum errors and full version recovery
cxymds Oct 19, 2026
008f0d8
test(heal): cover network version history and null identities
cxymds Oct 19, 2026
a2bc3ce
test(heal): preserve network boundary fixture coverage
cxymds Oct 19, 2026
d284c27
test(heal): add request-bound network load journals
cxymds Oct 19, 2026
c9179ce
test(heal): reconcile network load effects before cleanup
cxymds Oct 19, 2026
c084626
test(heal): preserve unresolved network load scenes
cxymds Oct 19, 2026
36c11db
test(heal): run complete network partition fixtures
cxymds Oct 19, 2026
3b064c9
test(heal): freeze failed network scene before gate recovery
cxymds Oct 19, 2026
293fe2c
docs(validation): record full I03 failure and retained recovery
cxymds Oct 19, 2026
536a0a1
test(heal): pin the reviewed I03 diagnostic candidate
cxymds Oct 19, 2026
7189c4b
test(heal): calibrate C02 and C03 DB boundary controls
cxymds Oct 19, 2026
111b2ce
fix(heal): include all I04 buckets in physical evidence
cxymds Oct 19, 2026
2b20cde
test(heal): bind RPC refusal candidate to exact I03 sources
cxymds Oct 19, 2026
fc30b4a
test(validation): inspect fleet services and port ownership read-only
cxymds Oct 19, 2026
50ba02d
test(validation): collect and admit exact-source race native subsets
cxymds Oct 19, 2026
3a2e16e
test(validation): require exact G01 native proof before fleet bootstrap
cxymds Oct 19, 2026
d5e328a
fix(validation): verify package removal during Heal finalization
cxymds Oct 19, 2026
686eea0
fix(validation): preserve system metadata during I04 degraded writes
cxymds Oct 19, 2026
8a4e3f4
fix(validation): preserve I04 pressure windows and null identities
cxymds Oct 19, 2026
fc6b5d6
test(validation): admit source-bound G02 and G03 native fences
cxymds Oct 20, 2026
5c6adcc
fix(validation): reject rate-limited source journals
cxymds Oct 20, 2026
888e5c6
test(validation): admit exact-source marker race fences
cxymds Oct 20, 2026
33b30bf
fix(validation): verify effective owned journal budget
cxymds Oct 20, 2026
0eec80e
fix(validation): preserve frozen multipart middle part size
cxymds Oct 20, 2026
ce92ba8
fix(validation): verify marker and batch-delete physical transitions
cxymds Oct 20, 2026
10e5571
fix(validation): bind race fault IDs to registered case codes
cxymds Oct 20, 2026
ea894f4
test(validation): migrate same-key multipart fixture and native contract
cxymds Oct 20, 2026
f1ff47e
test(validation): migrate owned multipart staging witnesses
cxymds Oct 20, 2026
4707873
fix(validation): preserve frozen copy race fixtures and direction
cxymds Oct 20, 2026
123d862
fix(validation): migrate owned race write bandwidth controls
cxymds Oct 20, 2026
ec82284
test(validation): admit exact owner and copy native groups
cxymds Oct 20, 2026
6a0d33b
fix(validation): isolate unresolved acknowledged race scenes
cxymds Oct 20, 2026
ec21096
fix(validation): preserve version race ACKs and backup witnesses
cxymds Oct 20, 2026
caff7c2
fix(validation): retain uncertain default-owner race scenes
cxymds Oct 20, 2026
1ab2e43
fix(validation): add multipart proof and preserve copy race scenes
cxymds Oct 20, 2026
f77b049
fix(validation): preserve source metadata race generation contract
cxymds Oct 20, 2026
19a47dd
feat(validation): preserve uncertain multipart race scenes
cxymds Oct 20, 2026
9e40dc3
feat(validation): recover exact uncertain multipart race archives
cxymds Oct 20, 2026
d834a7e
feat(validation): run frozen same-key multipart heal races
cxymds Oct 21, 2026
96f2891
fix(validation): preserve serial version order after deletion
cxymds Oct 21, 2026
d13439d
feat(validation): preserve frozen version race fixture oracles
cxymds Oct 21, 2026
60c472f
feat(validation): complete frozen G04 marker race runner
cxymds Oct 21, 2026
31a9e07
fix(validation): allow stopped race root census
cxymds Oct 21, 2026
81f771e
feat(validation): record caller-only TCP disconnect
cxymds Oct 21, 2026
525e473
docs(validation): clarify remaining I05 evidence requirements
cxymds Oct 21, 2026
a80863a
feat(validation): observe I05 caller admission and drain
cxymds Oct 21, 2026
fa79b52
feat(validation): diagnose I05 object namespace lock timeouts
cxymds Oct 22, 2026
704bd60
feat(validation): wire manual I05 timeout diagnostics
cxymds Oct 22, 2026
756e370
fix(validation): preserve I05 pre-contender failure scenes
cxymds Oct 22, 2026
c7e6499
docs(validation): record I05 read-path hypothesis
cxymds Oct 22, 2026
d100abe
fix(validation): retain I05 GET lock during streaming
cxymds Oct 22, 2026
66fe3a0
fix(validation): validate I05 contender lock evidence
cxymds Oct 22, 2026
1b88cad
docs(validation): record I05 isolation evidence
cxymds Oct 22, 2026
22589bc
fix(validation): retain I05 H2 failure scenes
cxymds Oct 22, 2026
0442d4d
docs(validation): record latest Heal environment inspection
cxymds Oct 22, 2026
b56b848
fix(validation): retain I05 drain-budget failure
cxymds Oct 22, 2026
dd7e54e
fix(validation): capture I05 descriptor ownership evidence
cxymds Oct 22, 2026
f431515
fix(validation): preserve I05 descriptor drain failure
cxymds Oct 22, 2026
c5d1890
docs(validation): record verified I05 scene isolation
cxymds Oct 22, 2026
a9725c8
fix(validation): isolate I05 from observed platform connections
cxymds Oct 22, 2026
31b787c
fix(validation): accept current bpftool cgroup attach names
cxymds Oct 22, 2026
fa0b659
fix(validation): preserve reviewed I05 H2 startup failure
cxymds Oct 22, 2026
8cbdd51
fix(validation): pin installed I05 bpftool before fleet reservation
cxymds Oct 22, 2026
33d3bb2
docs(validation): record audited I05 H1 H2 diagnostic
cxymds Oct 22, 2026
42ddcf6
test(validation): add I05 queued-successor diagnostics
cxymds Oct 22, 2026
7005b6a
fix(validation): classify I05 successor metadata reads
cxymds Oct 22, 2026
6fbc3c4
fix(validation): verify successor shards after service stop
cxymds Oct 22, 2026
3012a65
fix(validation): distinguish successor slow-lock warnings
cxymds Oct 22, 2026
7741ef3
docs(validation): record audited I05 successor diagnostics
cxymds Oct 22, 2026
632e3c4
fix(validation): require complete B05 member readiness
cxymds Oct 22, 2026
1f1ed10
fix(validation): restart B05 service after retained branch failure
cxymds Oct 22, 2026
76dbf70
fix(validation): bound Scanner logs to source attribution targets
cxymds Oct 22, 2026
70f6146
docs(validation): record complete B05 acceptance
cxymds Oct 22, 2026
ad07638
docs(validation): record independent J02 branch evidence
cxymds Oct 22, 2026
cd36287
fix(validation): bind remote Scanner tasks to leader cycles
cxymds Oct 22, 2026
53ef090
docs(validation): record complete E04 acceptance
cxymds Oct 22, 2026
81ed588
fix(validation): pin released rc for J01 status checks
cxymds Oct 22, 2026
23b3812
fix(validation): recognize explicit drive access denial
cxymds Oct 23, 2026
25301fd
fix(validation): validate retired token stop during force start
cxymds Oct 23, 2026
ff610f3
fix(validation): return B01 disk without restarting its fleet
cxymds Oct 23, 2026
ad2f7c1
fix(validation): account for protected B01 repair sidecars
cxymds Oct 23, 2026
21afd51
fix(validation): bind quorum checks to candidate identity
cxymds Oct 23, 2026
cc578a3
fix(validation): retain quorum rejection recovery evidence
cxymds Oct 23, 2026
a3d3c62
fix(validation): bind coordinator rejection to service evidence
cxymds Oct 23, 2026
adad664
docs(validation): reconcile B02 and B08 acceptance
cxymds Oct 23, 2026
fb3ab3d
test(heal): preserve B02 permission process attribution
cxymds Oct 23, 2026
c98028b
fix(heal): compare B02 process birth fields
cxymds Oct 23, 2026
dd53393
docs(validation): record complete B02 acceptance
cxymds Oct 23, 2026
af9da08
docs(validation): record J01 and B03 live diagnostics
cxymds Oct 23, 2026
3c867aa
docs(validation): clarify B03 mount adapter gate
cxymds Oct 23, 2026
60f6606
test(heal): fail fast on B03 mount admission
cxymds Oct 23, 2026
49443e7
test(heal): gate B03 before package bootstrap
cxymds Oct 23, 2026
06466a0
docs(validation): record B03 preflight block
cxymds Oct 23, 2026
6f2c0d1
test(heal): retain B03 topology preflight evidence
cxymds Oct 23, 2026
67b6c58
test(heal): gate unformatted replacement admission
cxymds Oct 24, 2026
0e3e842
test(heal): keep verdict snippet compatible
cxymds Oct 24, 2026
e26b596
docs(validation): document shared replacement gate
cxymds Oct 24, 2026
372f2cb
test(heal): generalize replacement preflight error
cxymds Oct 24, 2026
de310e3
fix(heal): classify replacement admission drift as blocked
cxymds Oct 24, 2026
44312c5
fix(heal): clarify replacement admission block reason
cxymds Oct 24, 2026
002473b
docs(validation): clarify two-stage replacement admission
cxymds Oct 24, 2026
6b628bf
docs(validation): record native audit and offline runner evidence
cxymds Oct 26, 2026
ee657fb
ci(validation): run the frozen G06 source contract regressions
cxymds Oct 26, 2026
8efc57d
fix(validation): isolate interrupted COPY after ACK authority
cxymds Oct 26, 2026
eae7ac2
fix(validation): observe G06 from actual SDK dispatch
cxymds Oct 26, 2026
1f8bcd7
fix(validation): preserve the source G06 tag overlap contract
cxymds Oct 26, 2026
7094c16
fix(validation): preserve race role evidence and status observation
cxymds Oct 26, 2026
b20b3d8
docs(validation): record G06 canonical acceptance
cxymds Oct 27, 2026
0f5a4cf
docs(validation): record G02 and candidate E2E status
cxymds Oct 28, 2026
f0744d1
Merge remote-tracking branch 'origin/main' into codex/validation-migr…
cxymds Oct 28, 2026
88fcc62
test(validation): complete source implementation migration
cxymds Oct 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/kms-script-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ on:
paths:
- rustfs-kms-test.sh
- test_rustfs_kms_presign.py
- test_validation_kms.sh
- .github/workflows/kms-script-tests.yml
push:
branches: [main]
paths:
- rustfs-kms-test.sh
- test_rustfs_kms_presign.py
- test_validation_kms.sh
- .github/workflows/kms-script-tests.yml

permissions:
Expand All @@ -28,3 +30,5 @@ jobs:
run: bash -n rustfs-kms-test.sh
- name: Test presigned KMS case without a server
run: python3 -m unittest test_rustfs_kms_presign.py
- name: Test canonical KMS round trip without a server
run: bash test_validation_kms.sh
4 changes: 4 additions & 0 deletions .github/workflows/s3-script-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@ on:
- rustfs-s3-compat-test.sh
- test_rustfs_s3_usage.py
- test_rustfs_s3_signing.py
- test_validation_s3_basic.sh
- .github/workflows/s3-script-tests.yml
push:
branches: [main]
paths:
- rustfs-s3-compat-test.sh
- test_rustfs_s3_usage.py
- test_rustfs_s3_signing.py
- test_validation_s3_basic.sh
- .github/workflows/s3-script-tests.yml

permissions:
Expand All @@ -32,3 +34,5 @@ jobs:
run: python3 -m pip install botocore==1.43.19
- name: Test S3 cases and signatures without a cluster
run: python3 -m unittest test_rustfs_s3_usage.py test_rustfs_s3_signing.py
- name: Test validation S3 round trip without a cluster
run: bash test_validation_s3_basic.sh
185 changes: 185 additions & 0 deletions .github/workflows/validation-catalog-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
name: Validation Catalog Tests

on:
pull_request:
paths:
- validation-cases.json
- validation-migration-review.json
- scripts/validation_migration_review.py
- scripts/validation_catalog.py
- scripts/validation_report.py
- scripts/validation_result.py
- test_validation_migration.py
- test_validation_ilm.py
- scripts/validation_ilm/**
- test_validation_pool.py
- scripts/validation_pool/**
- rustfs_pool_expand.sh
- test_validation_replication.py
- scripts/validation_replication/**
- test_validation_heal.py
- test_validation_heal*.py
- test_validation_heal_recovery.py
- test_validation_heal_authorization.py
- test_validation_heal_full_restart.py
- test_validation_heal_mrf.py
- test_validation_heal_unformatted.py
- test_validation_heal_performance.py
- test_validation_heal_multi_pool.py
- test_validation_heal_scopes.py
- test_validation_heal_bucket_metadata.py
- test_validation_heal_write_quorum.py
- test_validation_heal_coordinator_crash.py
- test_validation_heal_flapping.py
- test_validation_heal_capacity.py
- test_validation_heal_network.py
- test_validation_heal_encrypted.py
- test_validation_heal_schema.py
- test_validation_heal_native.py
- test_validation_heal_lock_successor.py
- test_validation_heal_race_native.py
- test_validation_heal_incarnation_native.py
- test_validation_heal_manager_native.py
- test_validation_heal_manager_fixture.py
- test_validation_heal_journal_fault.py
- test_validation_heal_checkpoint.py
- test_validation_heal_authority.py
- test_validation_heal_orphan.py
- test_validation_heal_options.py
- test_validation_heal_environment.py
- test_validation_heal_queue_pressure.py
- test_validation_heal_nolock.py
- test_validation_heal_race.py
- test_validation_heal_g06_source.py
- test_validation_heal_environment_gate.py
- test_validation_heal_outcome.py
- test_validation_heal_outcome_grace.py
- test_validation_heal_persistence.py
- test_validation_heal_persistence_mrf.py
- test_validation_heal_incarnation.py
- test_validation_heal_incarnation_replay.py
- scripts/validation_heal/**
- testdata/i05-*.ndjson
- testdata/validation/i05-*.zip
- docs/validation-heal-*.md
- rustfs_heal_test.sh
- test_validation_oidc.py
- scripts/validation_oidc.py
- scripts/validation_oidc/**
- test_validation_webhooks.py
- scripts/validation_webhooks.py
- scripts/run_validation_case.sh
- rustfs-replication-test.sh
- rustfs-storage-test.sh
- test_validation_scanner_usage.sh
- .github/workflows/validation-catalog-tests.yml
push:
branches: [main]
paths:
- validation-cases.json
- validation-migration-review.json
- scripts/validation_migration_review.py
- scripts/validation_catalog.py
- scripts/validation_report.py
- scripts/validation_result.py
- test_validation_migration.py
- test_validation_ilm.py
- scripts/validation_ilm/**
- test_validation_pool.py
- scripts/validation_pool/**
- rustfs_pool_expand.sh
- test_validation_replication.py
- scripts/validation_replication/**
- test_validation_heal.py
- test_validation_heal*.py
- test_validation_heal_recovery.py
- test_validation_heal_authorization.py
- test_validation_heal_full_restart.py
- test_validation_heal_mrf.py
- test_validation_heal_unformatted.py
- test_validation_heal_performance.py
- test_validation_heal_multi_pool.py
- test_validation_heal_scopes.py
- test_validation_heal_bucket_metadata.py
- test_validation_heal_write_quorum.py
- test_validation_heal_coordinator_crash.py
- test_validation_heal_flapping.py
- test_validation_heal_capacity.py
- test_validation_heal_network.py
- test_validation_heal_encrypted.py
- test_validation_heal_schema.py
- test_validation_heal_native.py
- test_validation_heal_lock_successor.py
- test_validation_heal_race_native.py
- test_validation_heal_incarnation_native.py
- test_validation_heal_manager_native.py
- test_validation_heal_manager_fixture.py
- test_validation_heal_journal_fault.py
- test_validation_heal_checkpoint.py
- test_validation_heal_authority.py
- test_validation_heal_orphan.py
- test_validation_heal_options.py
- test_validation_heal_environment.py
- test_validation_heal_queue_pressure.py
- test_validation_heal_nolock.py
- test_validation_heal_race.py
- test_validation_heal_g06_source.py
- test_validation_heal_environment_gate.py
- test_validation_heal_outcome.py
- test_validation_heal_outcome_grace.py
- test_validation_heal_persistence.py
- test_validation_heal_persistence_mrf.py
- test_validation_heal_incarnation.py
- test_validation_heal_incarnation_replay.py
- scripts/validation_heal/**
- testdata/i05-*.ndjson
- testdata/validation/i05-*.zip
- docs/validation-heal-*.md
- rustfs_heal_test.sh
- test_validation_oidc.py
- scripts/validation_oidc.py
- scripts/validation_oidc/**
- test_validation_webhooks.py
- scripts/validation_webhooks.py
- scripts/run_validation_case.sh
- rustfs-replication-test.sh
- rustfs-storage-test.sh
- test_validation_scanner_usage.sh
- .github/workflows/validation-catalog-tests.yml

permissions:
contents: read

jobs:
contract-tests:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
with:
persist-credentials: false
- run: python3 scripts/validation_catalog.py check
- run: python3 -B scripts/validation_migration_review.py --require-complete
- run: python3 -B -m unittest -v test_validation_migration.py
- run: python3 -B -m unittest -v test_validation_ilm.py
- run: python3 -B -m unittest -v test_validation_pool.py
- run: python3 -B -m unittest -v test_validation_replication.py
- run: python3 -m pip install -r scripts/validation_ilm/requirements.txt
- name: Install network namespace test dependency
run: |
if ! command -v nft >/dev/null; then
sudo apt-get update
sudo apt-get install --no-install-recommends -y nftables
fi
- run: python3 -B -m unittest -v test_validation_heal.py test_validation_heal_recovery.py test_validation_heal_authorization.py test_validation_heal_full_restart.py test_validation_heal_mrf.py test_validation_heal_unformatted.py test_validation_heal_performance.py test_validation_heal_scopes.py test_validation_heal_multi_pool.py test_validation_heal_bucket_metadata.py test_validation_heal_native.py test_validation_heal_manager_native.py test_validation_heal_manager_fixture.py test_validation_heal_journal_fault.py test_validation_heal_checkpoint.py test_validation_heal_authority.py test_validation_heal_orphan.py test_validation_heal_options.py test_validation_heal_environment.py test_validation_heal_environment_gate.py test_validation_heal_queue_pressure.py test_validation_heal_nolock.py test_validation_heal_race.py test_validation_heal_write_quorum.py test_validation_heal_schema.py test_validation_heal_encrypted.py test_validation_heal_coordinator_crash.py test_validation_heal_flapping.py test_validation_heal_capacity.py test_validation_heal_network.py test_validation_oidc.py test_validation_webhooks.py
- run: python3 -B -m unittest -v test_validation_heal_timeout_retention.py test_validation_heal_race_retention.py test_validation_heal_retained_scene.py test_validation_heal_lock_timeout_runner.py test_validation_heal_lock_source.py test_validation_heal_lock_timeout.py test_validation_heal_lock_observer.py test_validation_heal_lock_successor.py test_validation_heal_caller_abort.py test_validation_heal_status_keepalive.py test_validation_heal_mpu_race_runner.py test_validation_heal_race_io.py test_validation_heal_race_physical.py test_validation_heal_g03_source.py test_validation_heal_version_race_fixture.py test_validation_heal_version_race_physical.py test_validation_heal_version_race_adapter.py test_validation_heal_version_race_runner.py
- run: python3 -B scripts/validation_heal/matrix.py check
- run: python3 -B -m unittest -v test_validation_heal_outcome.py test_validation_heal_outcome_grace.py
- run: python3 -B -m unittest -v test_validation_heal_persistence.py test_validation_heal_persistence_mrf.py
- run: python3 -B -m unittest -v test_validation_heal_incarnation.py test_validation_heal_incarnation_replay.py
- run: python3 -B -m unittest -v test_validation_heal_incarnation_native.py
- run: python3 -B -m unittest -v test_validation_heal_race_native.py test_validation_heal_g06_source.py
- run: python3 -B -m unittest -v test_validation_heal_g02_source.py test_validation_heal_endpoint_resolution.py
- run: bash -n scripts/run_validation_case.sh scripts/validation_heal/run_case.sh scripts/validation_oidc/run_case.sh
- run: bash -n rustfs-storage-test.sh rustfs_pool_expand.sh rustfs-replication-test.sh scripts/validation_pool/run_case.sh scripts/validation_replication/run_case.sh test_validation_scanner_usage.sh
- run: bash test_validation_scanner_usage.sh
78 changes: 78 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,84 @@
# auto-testing
Auto testing scripts

## Release validation migration

`validation-cases.json` snapshots all 158 canonical cases from
`rustfs-release-validation/scenarios/catalog.yaml` (66 implemented, 84
procedure-ready, 8 planned). The source status is historical context. A run
result carries `migration_status: verified` only after its assertions, topology,
and live evidence are checked in this repository. `reuse_candidates` names
existing suites to inspect and never grants coverage by itself.

```bash
python3 scripts/validation_catalog.py check
python3 scripts/validation_catalog.py summary
python3 -B -m unittest -v test_validation_migration.py
```

To refresh after an intentional source catalog change:

```bash
python3 scripts/validation_catalog.py sync \
--source /absolute/path/to/rustfs-release-validation/scenarios/catalog.yaml
```

`scripts/validation_report.py` accepts one JSON result per canonical case ID.
Results must separately report source status, migration status, verdict,
cleanup, candidate/rc provenance, and evidence for each source assertion.
Pass `--gate-status implemented` only after the 66 migrated executors are
ready; missing or unverified cases fail that gate. Without a gate status, the
report shows migration progress and still rejects malformed or false PASS
results.

The executable canonical cases currently include `s3.basic-object-round-trip`,
`scanner.usage-convergence`, `kms.sse-kms-round-trip`,
`tiering.transition-and-restore`, `events.delivery`,
`audit.request-correlation`, `iam.policy-enforcement`, and
`scanner.status-readiness`. The S3, KMS, and IAM
cases use single-disk
deployment. The scanner case uses the storage suite's single-node four-disk
deployment, waits for a post-upload successful scanner cycle, and requires a
complete usage snapshot with exactly 20 objects and 20,690 logical bytes.
Each requires a candidate manifest with `source_sha`, `package_url`, and
`package_sha256`. The installed binary
SHA-256 is measured on the test node and included in result provenance:

```bash
./rustfs-s3-compat-test.sh \
--validation-case s3.basic-object-round-trip \
--candidate-manifest /absolute/path/candidate.json \
--testing-commit "$(git rev-parse HEAD)" \
--validation-artifacts-dir /absolute/path/new-artifacts-dir \
--yes

./rustfs-storage-test.sh \
--validation-case scanner.usage-convergence \
--candidate-manifest /absolute/path/candidate.json \
--testing-commit "$(git rev-parse HEAD)" \
--validation-artifacts-dir /absolute/path/another-new-artifacts-dir \
--yes

./rustfs-kms-test.sh \
--validation-case kms.sse-kms-round-trip \
--candidate-manifest /absolute/path/candidate.json \
--testing-commit "$(git rev-parse HEAD)" \
--validation-artifacts-dir /absolute/path/kms-new-artifacts-dir \
--yes

python3 scripts/validation_report.py \
--results-dir /absolute/path/new-artifacts-dir/cases \
--output /absolute/path/new-artifacts-dir/report.md
```

The report's full implemented-case gate is intentionally not enabled by these
runs. Run it with `--gate-status implemented` only after all 66
implemented source cases have verified executors and live results.

S3, scanner, KMS, tiering, and IAM have live PASS evidence against nightly
build `37958901959` attempt `1` on the current auto-testing fleet. Events and
audit have local executor tests but still need live verification.

## Fault-tolerance suite

`rustfs-fault-tolerance-test.sh` writes a machine-readable completion result
Expand Down
Loading
Loading