|
|
@@ -162,10 +162,20 @@ func TestClosedChan(t *testing.T) {
|
|
|
|
|
|
func TestSemaphore(t *testing.T) {
|
|
|
s := NewSemaphore(2)
|
|
|
+ assertLen := func(want int) {
|
|
|
+ t.Helper()
|
|
|
+ if got := s.Len(); got != want {
|
|
|
+ t.Fatalf("Len = %d, want %d", got, want)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ assertLen(0)
|
|
|
s.Acquire()
|
|
|
+ assertLen(1)
|
|
|
if !s.TryAcquire() {
|
|
|
t.Fatal("want true")
|
|
|
}
|
|
|
+ assertLen(2)
|
|
|
if s.TryAcquire() {
|
|
|
t.Fatal("want false")
|
|
|
}
|
|
|
@@ -175,11 +185,15 @@ func TestSemaphore(t *testing.T) {
|
|
|
t.Fatal("want false")
|
|
|
}
|
|
|
s.Release()
|
|
|
+ assertLen(1)
|
|
|
if !s.AcquireContext(context.Background()) {
|
|
|
t.Fatal("want true")
|
|
|
}
|
|
|
+ assertLen(2)
|
|
|
s.Release()
|
|
|
+ assertLen(1)
|
|
|
s.Release()
|
|
|
+ assertLen(0)
|
|
|
}
|
|
|
|
|
|
func TestMap(t *testing.T) {
|