docs: library comments say what the scanner and resolver do, not how they came to be (#6277)
release / govulncheck (push) Successful in 20s
release / web (push) Successful in 1m20s
release / go (push) Successful in 1m37s
release / integration (push) Successful in 5m15s
release / android (push) Successful in 5m26s
release / Build signed APK (releases and dev) (push) Successful in 5m45s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
release / govulncheck (push) Successful in 20s
release / web (push) Successful in 1m20s
release / go (push) Successful in 1m37s
release / integration (push) Successful in 5m15s
release / android (push) Successful in 5m26s
release / Build signed APK (releases and dev) (push) Successful in 5m45s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
Rewrites the internal/library comment blocks to rule 32. Task, milestone, decision and rule ids are gone; the incidents behind them are restated as the constraint they left (why a file is deleted before its row, why the missing mark is a mark, why duplicates block on duration). Counts and album names from one library are dropped from production comments; test comments keep the names their fixtures use. The tagReadVersion log keeps each version's before and after, without the measurements. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,8 +12,8 @@ import (
|
||||
)
|
||||
|
||||
// fakeAdopter answers the audio-hash lookup only for the hash it holds, the way
|
||||
// the real query does. A fake that returned its rows for any hash could not tell
|
||||
// adoption by identity apart from adoption by coincidence.
|
||||
// the real query does. A fake that returned its rows for any hash could not
|
||||
// tell adoption by identity apart from adoption by coincidence.
|
||||
type fakeAdopter struct {
|
||||
byMbid []dbq.FindMissingTrackByMbidRow
|
||||
hash []byte
|
||||
@@ -107,10 +107,9 @@ func TestAdoptMovedTrack_FallsBackToAudioHash(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// The case the old (file_size, duration_ms) pair got wrong: an unrelated file
|
||||
// that happens to share a size and a duration with a missing track. Size and
|
||||
// duration are no longer inputs at all; only the audio itself can match, and a
|
||||
// different recording has a different hash.
|
||||
// An unrelated file that happens to share a size and a duration with a missing
|
||||
// track is not adopted. Size and duration are not inputs at all; only the
|
||||
// audio itself can match, and a different recording has a different hash.
|
||||
func TestAdoptMovedTrack_DifferentAudioIsNotAdopted(t *testing.T) {
|
||||
s := testScanner(t)
|
||||
q := &fakeAdopter{hash: audioHash(0xAA), byHash: []dbq.FindMissingTrackByAudioHashRow{hashRow(1, oldPath)}, adoptRows: 1}
|
||||
@@ -209,8 +208,9 @@ func TestAdoptMovedTrack_NoCandidates(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// The row's mark was cleared between lookup and update — another file adopted it
|
||||
// first. AdoptTrackPath's `missing_since IS NOT NULL` predicate reports 0 rows.
|
||||
// The row's mark was cleared between lookup and update — another file adopted
|
||||
// it first. AdoptTrackPath's `missing_since IS NOT NULL` predicate reports 0
|
||||
// rows.
|
||||
func TestAdoptMovedTrack_LostRaceReportsNotAdopted(t *testing.T) {
|
||||
s := testScanner(t)
|
||||
q := &fakeAdopter{
|
||||
@@ -224,7 +224,7 @@ func TestAdoptMovedTrack_LostRaceReportsNotAdopted(t *testing.T) {
|
||||
}
|
||||
|
||||
// Failing to detect a move must never fail the file: the caller falls back to
|
||||
// inserting a fresh row, which is the pre-#2528 behaviour.
|
||||
// inserting a fresh row.
|
||||
func TestAdoptMovedTrack_ToleratesQueryErrors(t *testing.T) {
|
||||
sentinel := errors.New("db down")
|
||||
tests := []struct {
|
||||
|
||||
Reference in New Issue
Block a user