aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pkg/pkg_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-13 18:58:18 +0900
committerOphestra <cat@gensokyo.uk>2026-05-13 18:58:18 +0900
commit67038d5af400254a1a47490c155eae97da7d7e95 (patch)
treec097bc6406a6b6f7042f959847a60829961abf7e /internal/pkg/pkg_test.go
parent53d8d12e7ffeab5f902a24eaeb1b0b138893ab0e (diff)
internal/pkg: log fault in tests when available
This would otherwise only be available in verbose output, interleaved with everything else. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/pkg_test.go')
-rw-r--r--internal/pkg/pkg_test.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/pkg/pkg_test.go b/internal/pkg/pkg_test.go
index 9588fe77..48763b2a 100644
--- a/internal/pkg/pkg_test.go
+++ b/internal/pkg/pkg_test.go
@@ -21,6 +21,7 @@ import (
"syscall"
"testing"
"testing/fstest"
+ "time"
"unique"
"unsafe"
@@ -561,6 +562,21 @@ func cureMany(t *testing.T, c *pkg.Cache, steps []cureStep) {
for _, step := range steps {
t.Log("cure step:", step.name)
if pathname, checksum, err := c.Cure(step.a); !reflect.DeepEqual(err, step.err) {
+ faults, _err := c.ReadFaults(step.a)
+ if _err != nil {
+ t.Errorf("ReadFaults: error = %v", _err)
+ }
+
+ var p []byte
+ for _, fault := range faults {
+ p, _err = os.ReadFile(fault.String())
+ if _err != nil {
+ t.Error(_err)
+ continue
+ }
+ t.Log(string(p))
+ t.Logf("faulting cure terminated %s ago", time.Since(faults[0].Time()))
+ }
t.Fatalf("Cure: error = %v, want %v", err, step.err)
} else if step.pathname != ignorePathname && !pathname.Is(step.pathname) {
t.Fatalf("Cure: pathname = %q, want %q", pathname, step.pathname)