initial import
This commit is contained in:
43
core/fx/timeout_test.go
Normal file
43
core/fx/timeout_test.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package fx
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestWithPanic(t *testing.T) {
|
||||
assert.Panics(t, func() {
|
||||
_ = DoWithTimeout(func() error {
|
||||
panic("hello")
|
||||
}, time.Millisecond*50)
|
||||
})
|
||||
}
|
||||
|
||||
func TestWithTimeout(t *testing.T) {
|
||||
assert.Equal(t, ErrTimeout, DoWithTimeout(func() error {
|
||||
time.Sleep(time.Millisecond * 50)
|
||||
return nil
|
||||
}, time.Millisecond))
|
||||
}
|
||||
|
||||
func TestWithoutTimeout(t *testing.T) {
|
||||
assert.Nil(t, DoWithTimeout(func() error {
|
||||
return nil
|
||||
}, time.Millisecond*50))
|
||||
}
|
||||
|
||||
func TestWithCancel(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
go func() {
|
||||
time.Sleep(time.Millisecond * 10)
|
||||
cancel()
|
||||
}()
|
||||
err := DoWithTimeout(func() error {
|
||||
time.Sleep(time.Minute)
|
||||
return nil
|
||||
}, time.Second, WithContext(ctx))
|
||||
assert.Equal(t, ErrCanceled, err)
|
||||
}
|
||||
Reference in New Issue
Block a user