mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-03 20:17:59 +00:00
Exit ScanView if context has been cancelled (#7419)
This commit is contained in:
@@ -74,6 +74,10 @@ func ScanView(ctx context.Context, view ClearableView, cb func(path string)) err
|
||||
|
||||
// Handle the contents in the directory
|
||||
for _, c := range contents {
|
||||
// Exit if the context has been canceled
|
||||
if ctx.Err() != nil {
|
||||
return ctx.Err()
|
||||
}
|
||||
fullPath := current + c
|
||||
if strings.HasSuffix(c, "/") {
|
||||
frontier = append(frontier, fullPath)
|
||||
|
||||
@@ -34,6 +34,24 @@ func TestScanView(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestScanView_CancelContext(t *testing.T) {
|
||||
s := prepKeyStorage(t)
|
||||
|
||||
ctx, cancelCtx := context.WithCancel(context.Background())
|
||||
var i int
|
||||
err := ScanView(ctx, s, func(path string) {
|
||||
cancelCtx()
|
||||
i++
|
||||
})
|
||||
|
||||
if err == nil {
|
||||
t.Error("Want context cancel err, got none")
|
||||
}
|
||||
if i != 1 {
|
||||
t.Errorf("Want i==1, got %d", i)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCollectKeys(t *testing.T) {
|
||||
s := prepKeyStorage(t)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user