pkg/fsync/fsync_test.go
Nalin Dahyabhai bd3b44be3e Add a file-backed read-write mutex implementation
The fsync package provides Mutex and RWMutex types which aim to provide
the same semantics as their namesakes in the sync package, extending
that locking across processes by using file locks and randomly-generated
identifiers to allow processes to determine whether or not they were the
last to modify a resource that's protected by the lock.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com> (github: nalind)
2016-07-15 17:21:14 -04:00

29 lines
418 B
Go

package fsync
import (
"testing"
)
func TestLock(t *testing.T) {
m, err := Get("lockfile")
if err != nil {
t.Error(err)
return
}
m.RLock()
m.RUnlock()
m.Lock()
if !m.Updated() {
t.Errorf("lock appears to have been updated by us?")
return
}
m.Touch()
if m.Updated() {
t.Errorf("lock appears to have been updated by someone else")
return
}
m.Unlock()
r := m.RLocker()
r.Lock()
r.Unlock()
}