Skip to content

Commit

Permalink
gnet
Browse files Browse the repository at this point in the history
  • Loading branch information
snail007 committed Apr 25, 2024
1 parent a34fe4d commit 95b279b
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 2 deletions.
17 changes: 17 additions & 0 deletions util/func/func.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package gfunc
import (
gcore "github.com/snail007/gmc/core"
gerror "github.com/snail007/gmc/module/error"
gvalue "github.com/snail007/gmc/util/value"
)

type panicError struct{}
Expand Down Expand Up @@ -62,3 +63,19 @@ func CheckError(err error) {
}
return
}

// CheckError2 check the err and return the value if err is nil
func CheckError2(v interface{}, err error) *gvalue.AnyValue {
if err != nil {
panic(panicErr)
}
return gvalue.NewAny(v)
}

// CheckError3 check the err and return the value if err is nil
func CheckError3(v1 interface{}, v2 interface{}, err error) (*gvalue.AnyValue, *gvalue.AnyValue) {
if err != nil {
panic(panicErr)
}
return gvalue.NewAny(v1), gvalue.NewAny(v2)
}
32 changes: 32 additions & 0 deletions util/func/func_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,38 @@ func TestCheckError(t *testing.T) {
return
}
assert.Equal(t, "abc", f3().Error())

var f4 = func() int {
defer CatchCheckError()
v := CheckError2(123, nil)
return v.Int()
}
assert.Equal(t, 123, f4())

var f5 = func() interface{} {
defer CatchCheckError()
v := CheckError2(123, errors.New("abc"))
return v.Val()
}
assert.Equal(t, nil, f5())

var f6 = func() (int, string) {
defer CatchCheckError()
v1, v2 := CheckError3(123, "abc", nil)
return v1.Int(), v2.String()
}
a, b := f6()
assert.Equal(t, 123, a)
assert.Equal(t, "abc", b)

var f7 = func() (interface{}, interface{}) {
defer CatchCheckError()
v1, v2 := CheckError3(123, "abc", errors.New("abc"))
return v1.Val(), v2.Val()
}
c, d := f7()
assert.Equal(t, nil, c)
assert.Equal(t, nil, d)
}

func TestRecover(t *testing.T) {
Expand Down
4 changes: 2 additions & 2 deletions util/net/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ func RandomListen(ip ...string) (l net.Listener, port string, err error) {
_, port, _ = net.SplitHostPort(l.Addr().String())
return
}
func RandomPort() (port string, err error) {
func RandomPort(ip ...string) (port string, err error) {
maxTry := 3
var l net.Listener
defer func() {
Expand All @@ -139,7 +139,7 @@ func RandomPort() (port string, err error) {
}
}()
for i := 0; i < maxTry; i++ {
l, port, err = RandomListen()
l, port, err = RandomListen(ip...)
if err == nil {
port = NewAddr(l.Addr()).Port()
return
Expand Down

0 comments on commit 95b279b

Please sign in to comment.