internal/pkg: verify checksum after uneventful scrub
All checks were successful
Test / Create distribution (push) Successful in 45s
Test / Sandbox (push) Successful in 2m37s
Test / Hakurei (push) Successful in 3m40s
Test / ShareFS (push) Successful in 3m42s
Test / Hpkg (push) Successful in 4m18s
Test / Sandbox (race detector) (push) Successful in 4m54s
Test / Hakurei (race detector) (push) Successful in 5m56s
Test / Flake checks (push) Successful in 1m46s
All checks were successful
Test / Create distribution (push) Successful in 45s
Test / Sandbox (push) Successful in 2m37s
Test / Hakurei (push) Successful in 3m40s
Test / ShareFS (push) Successful in 3m42s
Test / Hpkg (push) Successful in 4m18s
Test / Sandbox (race detector) (push) Successful in 4m54s
Test / Hakurei (race detector) (push) Successful in 5m56s
Test / Flake checks (push) Successful in 1m46s
This checks that scrub did not condemn any entry without reporting it. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -202,6 +202,15 @@ func checkWithCache(t *testing.T, testCases []cacheTestCase) {
|
||||
scrubFunc = c.Scrub
|
||||
}
|
||||
|
||||
var restoreTemp bool
|
||||
if _, err := os.Lstat(base.Append("temp").String()); err != nil {
|
||||
if !errors.Is(err, os.ErrNotExist) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
} else {
|
||||
restoreTemp = true
|
||||
}
|
||||
|
||||
if checksum, err := pkg.HashDir(base); err != nil {
|
||||
t.Fatalf("HashDir: error = %v", err)
|
||||
} else if checksum != tc.want {
|
||||
@@ -214,6 +223,25 @@ func checkWithCache(t *testing.T, testCases []cacheTestCase) {
|
||||
if err := scrubFunc(); err != nil {
|
||||
t.Fatal("cache contains inconsistencies\n\n" + err.Error())
|
||||
}
|
||||
|
||||
if restoreTemp {
|
||||
if err := os.Mkdir(
|
||||
base.Append("temp").String(),
|
||||
0700,
|
||||
); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// validate again to make sure scrub did not condemn anything
|
||||
if checksum, err := pkg.HashDir(base); err != nil {
|
||||
t.Fatalf("HashDir: error = %v", err)
|
||||
} else if checksum != tc.want {
|
||||
t.Fatalf("(scrubbed) HashDir: %v", &pkg.ChecksumMismatchError{
|
||||
Got: checksum,
|
||||
Want: tc.want,
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user