QA: deterministic fault injection and crash-recovery tests

Open
#152 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
18/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
rust
Domain
testing-qa

Research direction

The payload names no source files, tests or entry points, only dependencies #151, #110 and #124 and a required threat model/ADR before any code. Start by reading those issues and the existing CI and security configuration they mention. Done means the approved plan is documented and the fault-injection tests, covering write abort, simulated power loss, damaged metadata and temp cleanup, pass without changing key or .pqkf-v1 formats.

Written by the indexing model from the issue text.

Description

area:core area:storage priority:P2 type:security

Ziel / Abgrenzung

Test-only Fault-Hooks für Schreibabbruch, simulierten Stromausfall, beschädigte Metadaten und Temp-Cleanup; alte Daten müssen erhalten bleiben.

Abhängigkeiten

#151, #110, #124. Bestehende Sicherheits- und CI-Arbeiten erweitern, nicht duplizieren. Vorherige QA-Stufe abschließen oder Unabhängigkeit begründen.

Sicherheitsanforderungen

  • Keine produktiven Test-Hooks; keine Secrets in Logs oder Testartefakten.
  • Keine neuen Remote-Schnittstellen oder stillen Sicherheits-Fallbacks.
  • Keine Änderung bestehender Schlüssel- und .pqkf-v1-Formate.

Tests und Definition of Done

  • Plan und Threat Model/ADR vor Implementierung dokumentiert und freigegeben
  • Positiv-, Negativ-, Grenzwert-, Crash- und Manipulationstests für diesen Schritt
  • Regression von CLI/API, bestehenden Schlüsseln und Archiven nachgewiesen
  • CI fmt, clippy, Tests und Security-Checks grün; Windows/Linux soweit relevant
  • DE/EN-Dokumentation, Sicherheitsgrenzen und Review dokumentiert
  • Eigenständiger PR ohne Abhängigkeit von unfertigen Folgeschritten

Rückwärtskompatibilität und Rollback

Opt-in bzw. ausschließlich Test-/CI-Konfiguration. Produktive Codepfade unverändert; PR-Revert stellt vorherigen Zustand wieder her. Kein automatischer Datenumbau, kein Löschen von Schlüsseln oder Archiven. Rollback-Test dokumentieren.

Dominant language
Rust
Stars
0
Forks
0
Avg merge
1h 22m
Merged PRs (30d)
72

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from SpecterAoD/pqkeep

All issues in SpecterAoD/pqkeep

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.