Ai
1 Star 0 Fork 0

filecoin-project/go-ipfs

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
dnsresolve_test.go 1.56 KB
一键复制 编辑 原始数据 按行查看 历史
Jakub Sztandera 提交于 2019-03-03 02:26 +08:00 . gx: unrewrite
package main
import (
"context"
"fmt"
"net"
"strings"
"testing"
ma "github.com/multiformats/go-multiaddr"
madns "github.com/multiformats/go-multiaddr-dns"
)
var (
ctx = context.Background()
testAddr, _ = ma.NewMultiaddr("/dns4/example.com/tcp/5001")
)
func makeResolver(n uint8) *madns.Resolver {
results := make([]net.IPAddr, n)
for i := uint8(0); i < n; i++ {
results[i] = net.IPAddr{IP: net.ParseIP(fmt.Sprintf("192.0.2.%d", i))}
}
backend := &madns.MockBackend{
IP: map[string][]net.IPAddr{
"example.com": results,
}}
return &madns.Resolver{
Backend: backend,
}
}
func TestApiEndpointResolveDNSOneResult(t *testing.T) {
dnsResolver = makeResolver(1)
addr, err := resolveAddr(ctx, testAddr)
if err != nil {
t.Error(err)
}
if ref, _ := ma.NewMultiaddr("/ip4/192.0.2.0/tcp/5001"); !addr.Equal(ref) {
t.Errorf("resolved address was different than expected")
}
}
func TestApiEndpointResolveDNSMultipleResults(t *testing.T) {
dnsResolver = makeResolver(4)
addr, err := resolveAddr(ctx, testAddr)
if err != nil {
t.Error(err)
}
if ref, _ := ma.NewMultiaddr("/ip4/192.0.2.0/tcp/5001"); !addr.Equal(ref) {
t.Errorf("resolved address was different than expected")
}
}
func TestApiEndpointResolveDNSNoResults(t *testing.T) {
dnsResolver = makeResolver(0)
addr, err := resolveAddr(ctx, testAddr)
if addr != nil || err == nil {
t.Error("expected test address not to resolve, and to throw an error")
}
if !strings.HasPrefix(err.Error(), "non-resolvable API endpoint") {
t.Errorf("expected error not thrown; actual: %v", err)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ipfs2/go-ipfs.git
git@gitee.com:ipfs2/go-ipfs.git
ipfs2
go-ipfs
go-ipfs
master

搜索帮助