package agent import ( "errors" "testing" ) func TestUploadLockSerializesIndependentSpools(t *testing.T) { root := t.TempDir() first, err := NewSpool(root, nil) if err != nil { t.Fatal(err) } second, err := NewSpool(root, nil) if err != nil { t.Fatal(err) } lock, err := first.LockUpload("upload-a") if err != nil { t.Fatal(err) } if _, err := second.LockUpload("upload-a"); !errors.Is(err, ErrUploadBusy) { t.Fatalf("parallel writer accepted: %v", err) } if err := lock.Close(); err != nil { t.Fatal(err) } next, err := second.LockUpload("upload-a") if err != nil { t.Fatal(err) } if err := next.Close(); err != nil { t.Fatal(err) } }