1 Commits

Author SHA1 Message Date
597e3189ca sync: Add tests for RWMonitor as well 2024-12-29 02:33:32 -05:00

View File

@@ -45,3 +45,46 @@ func TestMonitorConcurrent (test *testing.T) {
} ()
}
}
func TestRWMonitor (test *testing.T) {
mon := NewRWMonitor(9)
func () {
value, done := mon.Borrow()
defer done()
test.Log(value)
if value != 9 { test.Fatal("not equal") }
} ()
func () {
value, done := mon.BorrowReturn()
value += 3
defer done(value)
} ()
func () {
value, done := mon.RBorrow()
defer done()
test.Log(value)
if value != 12 { test.Fatal("not equal") }
} ()
mon.Set(11)
func () {
value, done := mon.RBorrow()
defer done()
test.Log(value)
if value != 11 { test.Fatal("not equal") }
} ()
}
func TestRWMonitorConcurrent (test *testing.T) {
mon := NewRWMonitor(map[int] int { })
for index := 0; index < 16; index ++ {
go func () {
for index := 0; index < 8192; index ++ {
func () {
value, done := mon.Borrow()
defer done()
value[rand.Int()] = rand.Int()
} ()
}
} ()
}
}