test(b2): add test seams for account-info cleanup, file sync and buffer pool return
I maintainer di solito rispondono entro 1 giorno
@ffumero2003 ci sta già lavorando.
Dal 30/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Context
The #204 test-integrity work pinned most of the b2 production edges that mutation testing found, but three can't be tested without a small test hook in production code. A test-only change can't cover them:
b2/accountinfo.go:135, temp-file cleanup: when writing the session file, the deferredos.Removeof the temporary file can fail, and that error handling isn't tested. A test can't make the removal fail at that exact point; making the directory read-only beforehand makesos.CreateTempfail instead.b2/accountinfo.go:146,file.Sync(): nothing checks that the session file is synced before it's renamed into place. SkippingSyncpasses every test.b2/buffer.go:148, buffer pool return:memoryBuffer.Closereturns its buffer tobufpool. Double-Close is now tested (#204 slice C3), but returning the buffer to the pool is not:sync.Pool.Getmay drop a value that was just put, so a test can't observe thePut.
Acceptance criteria
- R1. For each of the three: a test that fails when the behavior is broken (the cleanup error is ignored,
Syncis skipped, the buffer isn't returned to the pool), recorded with its break. - R2. No exported API change; default behavior unchanged.
- R3. Changelog: not needed (no user-visible change), so
skip-changelog.
In scope
Proposed approach
Add the smallest unexported seam for each, and keep the public API unchanged:
- an unexported hook (or file-operations interface) in
accountinfo.gothat tests can replace, soRemovecan fail andSynccan be observed; - an unexported pool variable or interface in
buffer.gothat tests can replace with a recording pool.
Out of scope
- Unrelated work outside the components and behavior described in In scope.
Verification
Run the repository regression checks with live credentials unset:
unset B2_APPLICATION_KEY_ID B2_APPLICATION_KEY B2_ACCOUNT_ID B2_ACCOUNT_KEY
go build ./...
go vet ./...
go test -race -count=1 ./b2
- For each seam, independently break the stated behavior: ignore cleanup failure, omit
Sync, or omit pool return. Record the targeted failing test, then restore and record green. - Verify the default implementations and exported API remain unchanged; retain the original
skip-changelogtreatment. - Expected result: the checks above succeed and the observable outcomes in Acceptance criteria are demonstrated. If a check cannot run, report
Could not run because: ...; if it starts but fails, reportCould not complete because: .... A skipped check is not a pass.
Links
- Part of the #204 checklist (items
accountinfo.go:135,accountinfo.go:146,buffer.go:148), stopped in slice C3 because they need these seams.
- Lingua principale
- Go
- Stelle
- 66
- Fork
- 18
- Merge medio
- 1g 10h
- PR unite (30g)
- 132
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Backblaze/blazer
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Bucket.Attrs never returns ReplicationConfig: replication configuration is write-onlyForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
test: skip the fuzz non-vacuity guard when replaying a single seedForse già presa @ffumero2003 l’ha presa 5 giorni fa. Apertatesting
Backblaze/blazer#330 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Backblaze/blazer
Issue simili
-
needs-triage typo
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
llm-d-incubation/llm-d-scaling-manager#122 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue severity: low tech-debt
Difficoltà 2/5 Mezza giornata Idoneità per principianti 75/100
TMHSDigital/subenum#329 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Backend summarize min() / max() panics when a field has no numeric valuesForse già presa @weng5e l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
grafana/grafana-infinity-datasource#1832 ·
I maintainer di solito rispondono entro 1 giorno
-
tech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
GillMacedo/godebugdiff#13 ·