Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839//go:build unix
package spindle
import ( "path/filepath" "strings" "testing")
func TestSecondSpindleOnTheSameDatabaseIsRefused(t *testing.T) { dbPath := filepath.Join(t.TempDir(), "spindle.db")
release, err := lockInstance(dbPath) if err != nil { t.Fatal(err) } if _, err := lockInstance(dbPath); err == nil || !strings.Contains(err.Error(), "another spindle") { t.Fatalf("second lock = %v, want a refusal while the first holds it", err) } release()
again, err := lockInstance(dbPath) if err != nil { t.Fatalf("the lock was not given back: %v", err) } again()}
func TestNoDatabasePathMeansNoLock(t *testing.T) { for range 2 { release, err := lockInstance("") if err != nil { t.Fatal(err) } defer release() }}