35 lines
587 B
Go
35 lines
587 B
Go
package idle
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestIdlerChan(_ *testing.T) {
|
|
i := CreateIdler(10 * time.Millisecond)
|
|
<-i.Chan()
|
|
}
|
|
|
|
func TestGlobalIdler(t *testing.T) {
|
|
err := Wait(10 * time.Millisecond)
|
|
if err != nil {
|
|
t.Fatalf("idle.Wait failed, %v", err)
|
|
}
|
|
err = Wait(10 * time.Millisecond)
|
|
if err == nil {
|
|
t.Fatal("idle.Wait should fail when called second time")
|
|
}
|
|
}
|
|
|
|
func TestIdlerEnterExit(t *testing.T) {
|
|
i := CreateIdler(10 * time.Millisecond).(*idler)
|
|
i.Enter()
|
|
if i.active.Load() != 1 {
|
|
t.FailNow()
|
|
}
|
|
i.Exit()
|
|
if i.active.Load() != 0 {
|
|
t.FailNow()
|
|
}
|
|
}
|