mirror of
https://github.com/octoleo/restic.git
synced 2024-11-05 04:47:51 +00:00
Merge pull request #4285 from MichaelEischer/debug-lock-refresh-failures
lock: Improve debug logging in the test
This commit is contained in:
commit
8afc117aa3
@ -3,6 +3,7 @@ package main
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"runtime"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -136,7 +137,9 @@ type loggingBackend struct {
|
|||||||
|
|
||||||
func (b *loggingBackend) Save(ctx context.Context, h restic.Handle, rd restic.RewindReader) error {
|
func (b *loggingBackend) Save(ctx context.Context, h restic.Handle, rd restic.RewindReader) error {
|
||||||
b.t.Logf("save %v @ %v", h, time.Now())
|
b.t.Logf("save %v @ %v", h, time.Now())
|
||||||
return b.Backend.Save(ctx, h, rd)
|
err := b.Backend.Save(ctx, h, rd)
|
||||||
|
b.t.Logf("save finished %v @ %v", h, time.Now())
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLockSuccessfulRefresh(t *testing.T) {
|
func TestLockSuccessfulRefresh(t *testing.T) {
|
||||||
@ -161,7 +164,15 @@ func TestLockSuccessfulRefresh(t *testing.T) {
|
|||||||
|
|
||||||
select {
|
select {
|
||||||
case <-wrappedCtx.Done():
|
case <-wrappedCtx.Done():
|
||||||
t.Fatal("lock refresh failed")
|
// don't call t.Fatal to allow the lock to be properly cleaned up
|
||||||
|
t.Error("lock refresh failed", time.Now())
|
||||||
|
|
||||||
|
// Dump full stacktrace
|
||||||
|
buf := make([]byte, 1024*1024)
|
||||||
|
n := runtime.Stack(buf, true)
|
||||||
|
buf = buf[:n]
|
||||||
|
t.Log(string(buf))
|
||||||
|
|
||||||
case <-time.After(2 * refreshabilityTimeout):
|
case <-time.After(2 * refreshabilityTimeout):
|
||||||
// expected lock refresh to work
|
// expected lock refresh to work
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user