commit
9f5b7a96d8
|
@ -3,6 +3,9 @@ os:
|
|||
- osx
|
||||
language: go
|
||||
go:
|
||||
- "master"
|
||||
- "1.11.x"
|
||||
install:
|
||||
- go get "github.com/pkg/errors"
|
||||
- go get "github.com/pkg/errors"
|
||||
script: go test -v -bench=. -benchmem ./...
|
||||
|
||||
|
|
|
@ -3,8 +3,10 @@ package tcp
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"os"
|
||||
"runtime"
|
||||
"sync"
|
||||
"testing"
|
||||
|
@ -12,10 +14,33 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
AddrDead = "127.0.0.1:1"
|
||||
AddrTimeout = "10.255.255.1:80"
|
||||
AddrDead = "127.0.0.1:1"
|
||||
)
|
||||
|
||||
var timeoutAddrs = []string{
|
||||
"10.255.255.1:80",
|
||||
"10.0.0.0:1",
|
||||
}
|
||||
var AddrTimeout = timeoutAddrs[0]
|
||||
|
||||
func _setAddrTimeout() {
|
||||
for _, addr := range timeoutAddrs {
|
||||
conn, err := net.DialTimeout("tcp", addr, time.Millisecond*50)
|
||||
if err == nil {
|
||||
conn.Close()
|
||||
continue
|
||||
}
|
||||
if os.IsTimeout(err) {
|
||||
AddrTimeout = addr
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
_setAddrTimeout()
|
||||
}
|
||||
|
||||
// assert calls t.Fatal if the result is false
|
||||
func assert(t *testing.T, result bool) {
|
||||
if !result {
|
||||
|
|
|
@ -26,7 +26,8 @@ func _benchmarkChecker(b *testing.B, c *Checker, addr string) {
|
|||
b.ResetTimer()
|
||||
b.RunParallel(func(pb *testing.PB) {
|
||||
for pb.Next() {
|
||||
c.CheckAddr(addr, time.Second)
|
||||
// if timeout >= 1s, this func will run only once in the benchmark.
|
||||
c.CheckAddr(addr, time.Millisecond*900)
|
||||
}
|
||||
})
|
||||
b.StopTimer()
|
||||
|
|
Loading…
Reference in New Issue