opentofu/internal/tofu/util_test.go
Lars Lehtonen 2517ffa11d
Prune Unused String Functions (#611)
Signed-off-by: Lars Lehtonen <lars.lehtonen@gmail.com>
2023-09-28 01:51:40 +02:00

37 lines
546 B
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package tofu
import (
"testing"
"time"
)
func TestSemaphore(t *testing.T) {
s := NewSemaphore(2)
timer := time.AfterFunc(time.Second, func() {
panic("deadlock")
})
defer timer.Stop()
s.Acquire()
if !s.TryAcquire() {
t.Fatalf("should acquire")
}
if s.TryAcquire() {
t.Fatalf("should not acquire")
}
s.Release()
s.Release()
// This release should panic
defer func() {
r := recover()
if r == nil {
t.Fatalf("should panic")
}
}()
s.Release()
}