Store and use the correct IDs in TestRemoteLocks
This commit is contained in:
parent
f5ed8cd288
commit
6aa1066f7c
|
@ -65,31 +65,29 @@ func TestRemoteLocks(t *testing.T, a, b Client) {
|
|||
infoB.Operation = "test"
|
||||
infoB.Who = "clientB"
|
||||
|
||||
if _, err := lockerA.Lock(infoA); err != nil {
|
||||
lockIDA, err := lockerA.Lock(infoA)
|
||||
if err != nil {
|
||||
t.Fatal("unable to get initial lock:", err)
|
||||
}
|
||||
|
||||
if _, err := lockerB.Lock(infoB); err == nil {
|
||||
lockerA.Unlock("")
|
||||
_, err = lockerB.Lock(infoB)
|
||||
if err == nil {
|
||||
lockerA.Unlock(lockIDA)
|
||||
t.Fatal("client B obtained lock while held by client A")
|
||||
} else {
|
||||
t.Log("lock info error:", err)
|
||||
}
|
||||
|
||||
if err := lockerA.Unlock(""); err != nil {
|
||||
if err := lockerA.Unlock(lockIDA); err != nil {
|
||||
t.Fatal("error unlocking client A", err)
|
||||
}
|
||||
|
||||
if _, err := lockerB.Lock(infoB); err != nil {
|
||||
lockIDB, err := lockerB.Lock(infoB)
|
||||
if err != nil {
|
||||
t.Fatal("unable to obtain lock from client B")
|
||||
}
|
||||
|
||||
if err := lockerB.Unlock(""); err != nil {
|
||||
if err = lockerB.Unlock(lockIDB); err != nil {
|
||||
t.Fatal("error unlocking client B:", err)
|
||||
}
|
||||
|
||||
// unlock should be repeatable
|
||||
if err := lockerA.Unlock(""); err != nil {
|
||||
t.Fatal("Unlock error from client A when state was not locked:", err)
|
||||
}
|
||||
// TODO: Should we enforce that Unlock requires the correct ID?
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue