| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- // Copyright (c) Tailscale Inc & AUTHORS
- // SPDX-License-Identifier: BSD-3-Clause
- package neterror
- import (
- "errors"
- "net"
- "os"
- "syscall"
- "testing"
- )
- func TestTreatAsLostUDP(t *testing.T) {
- tests := []struct {
- name string
- err error
- want bool
- }{
- {"nil", nil, false},
- {"non-nil", errors.New("foo"), false},
- {"eperm", syscall.EPERM, true},
- {
- name: "operror",
- err: &net.OpError{
- Op: "write",
- Err: &os.SyscallError{
- Syscall: "sendto",
- Err: syscall.EPERM,
- },
- },
- want: true,
- },
- {
- name: "host_unreach",
- err: &net.OpError{
- Op: "write",
- Err: &os.SyscallError{
- Syscall: "sendto",
- Err: syscall.EHOSTUNREACH,
- },
- },
- want: false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- if got := TreatAsLostUDP(tt.err); got != tt.want {
- t.Errorf("got = %v; want %v", got, tt.want)
- }
- })
- }
- }
|