mirror of
https://github.com/golang/go.git
synced 2025-11-02 01:30:55 +00:00
net: use contexts for cgo-based DNS resolution
Although calls to getaddrinfo can't be portably interrupted, we still benefit from more granular resource management by pushing the context downwards. Fixes #15321 Change-Id: I5506195fc6493080410e3d46aaa3fe02018a24fe Reviewed-on: https://go-review.googlesource.com/22961 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
9edb27e76f
commit
636670b8db
5 changed files with 180 additions and 46 deletions
|
|
@ -13,15 +13,70 @@ import (
|
|||
)
|
||||
|
||||
func TestCgoLookupIP(t *testing.T) {
|
||||
host := "localhost"
|
||||
_, err, ok := cgoLookupIP(host)
|
||||
ctx := context.Background()
|
||||
_, err, ok := cgoLookupIP(ctx, "localhost")
|
||||
if !ok {
|
||||
t.Errorf("cgoLookupIP must not be a placeholder")
|
||||
}
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, err := goLookupIP(context.Background(), host); err != nil {
|
||||
}
|
||||
|
||||
func TestCgoLookupIPWithCancel(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
_, err, ok := cgoLookupIP(ctx, "localhost")
|
||||
if !ok {
|
||||
t.Errorf("cgoLookupIP must not be a placeholder")
|
||||
}
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCgoLookupPort(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
_, err, ok := cgoLookupPort(ctx, "tcp", "smtp")
|
||||
if !ok {
|
||||
t.Errorf("cgoLookupPort must not be a placeholder")
|
||||
}
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCgoLookupPortWithCancel(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
_, err, ok := cgoLookupPort(ctx, "tcp", "smtp")
|
||||
if !ok {
|
||||
t.Errorf("cgoLookupPort must not be a placeholder")
|
||||
}
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCgoLookupPTR(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
_, err, ok := cgoLookupPTR(ctx, "127.0.0.1")
|
||||
if !ok {
|
||||
t.Errorf("cgoLookupPTR must not be a placeholder")
|
||||
}
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCgoLookupPTRWithCancel(t *testing.T) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
_, err, ok := cgoLookupPTR(ctx, "127.0.0.1")
|
||||
if !ok {
|
||||
t.Errorf("cgoLookupPTR must not be a placeholder")
|
||||
}
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue