Files
go-sip/internal/agent/upload_lock_test.go
T

36 lines
673 B
Go

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)
}
}