mirror of
https://github.com/tinygo-org/net.git
synced 2026-07-26 08:18:39 +00:00
105 lines
2.6 KiB
Go
105 lines
2.6 KiB
Go
// TINYGO tests for the netdev-backed Resolver lookups.
|
|
|
|
package net
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"net/netip"
|
|
"testing"
|
|
)
|
|
|
|
func TestResolverLookupHost(t *testing.T) {
|
|
ip := netip.MustParseAddr("1.2.3.4")
|
|
withNetdev(t, &fakeNetdev{hostIP: ip})
|
|
|
|
addrs, err := DefaultResolver.LookupHost(context.Background(), "example.com")
|
|
if err != nil {
|
|
t.Fatalf("LookupHost: unexpected error %v", err)
|
|
}
|
|
if len(addrs) != 1 || addrs[0] != "1.2.3.4" {
|
|
t.Fatalf("LookupHost = %v, want [1.2.3.4]", addrs)
|
|
}
|
|
}
|
|
|
|
func TestResolverLookupHostEmpty(t *testing.T) {
|
|
withNetdev(t, &fakeNetdev{})
|
|
|
|
_, err := DefaultResolver.LookupHost(context.Background(), "")
|
|
var de *DNSError
|
|
if !errors.As(err, &de) || !de.IsNotFound {
|
|
t.Fatalf("LookupHost(\"\") = %v, want *DNSError with IsNotFound", err)
|
|
}
|
|
}
|
|
|
|
func TestResolverLookupHostError(t *testing.T) {
|
|
withNetdev(t, &fakeNetdev{hostErr: errors.New("dns down")})
|
|
|
|
_, err := DefaultResolver.LookupHost(context.Background(), "example.com")
|
|
var de *DNSError
|
|
if !errors.As(err, &de) {
|
|
t.Fatalf("LookupHost error = %T, want *DNSError", err)
|
|
}
|
|
if de.Name != "example.com" {
|
|
t.Errorf("DNSError.Name = %q, want example.com", de.Name)
|
|
}
|
|
}
|
|
|
|
func TestResolverLookupIPAddr(t *testing.T) {
|
|
ip := netip.MustParseAddr("10.0.0.5")
|
|
withNetdev(t, &fakeNetdev{hostIP: ip})
|
|
|
|
addrs, err := DefaultResolver.LookupIPAddr(context.Background(), "host")
|
|
if err != nil {
|
|
t.Fatalf("LookupIPAddr: %v", err)
|
|
}
|
|
if len(addrs) != 1 || !addrs[0].IP.Equal(IPv4(10, 0, 0, 5)) {
|
|
t.Fatalf("LookupIPAddr = %v, want [10.0.0.5]", addrs)
|
|
}
|
|
}
|
|
|
|
func TestResolverLookupNetIP(t *testing.T) {
|
|
ip := netip.MustParseAddr("10.0.0.6")
|
|
withNetdev(t, &fakeNetdev{hostIP: ip})
|
|
|
|
addrs, err := DefaultResolver.LookupNetIP(context.Background(), "ip", "host")
|
|
if err != nil {
|
|
t.Fatalf("LookupNetIP: %v", err)
|
|
}
|
|
if len(addrs) != 1 || addrs[0] != ip {
|
|
t.Fatalf("LookupNetIP = %v, want [%v]", addrs, ip)
|
|
}
|
|
}
|
|
|
|
func TestLookupIP(t *testing.T) {
|
|
ip := netip.MustParseAddr("192.168.1.1")
|
|
withNetdev(t, &fakeNetdev{hostIP: ip})
|
|
|
|
ips, err := LookupIP("host")
|
|
if err != nil {
|
|
t.Fatalf("LookupIP: %v", err)
|
|
}
|
|
if len(ips) != 1 || !ips[0].Equal(IPv4(192, 168, 1, 1)) {
|
|
t.Fatalf("LookupIP = %v, want [192.168.1.1]", ips)
|
|
}
|
|
}
|
|
|
|
func TestLookupHostPackage(t *testing.T) {
|
|
ip := netip.MustParseAddr("172.16.0.9")
|
|
withNetdev(t, &fakeNetdev{hostIP: ip})
|
|
|
|
addrs, err := LookupHost("host")
|
|
if err != nil {
|
|
t.Fatalf("LookupHost: %v", err)
|
|
}
|
|
if len(addrs) != 1 || addrs[0] != "172.16.0.9" {
|
|
t.Fatalf("LookupHost = %v, want [172.16.0.9]", addrs)
|
|
}
|
|
}
|
|
|
|
func TestDefaultResolverNonNil(t *testing.T) {
|
|
if DefaultResolver == nil {
|
|
t.Fatal("DefaultResolver is nil")
|
|
}
|
|
}
|