// Copyright (c) 2026 Petr BalvĂ­n (https://petrbalvin.org) // SPDX-License-Identifier: MIT package server import ( "os" "syscall" "testing" ) // The transient accept errors are survivable; anything else is not. func TestTransientAccept(t *testing.T) { transient := []error{ os.NewSyscallError("accept", syscall.ECONNABORTED), os.NewSyscallError("accept", syscall.EMFILE), os.NewSyscallError("accept", syscall.ENFILE), os.NewSyscallError("accept", syscall.EAGAIN), os.NewSyscallError("accept", syscall.EINTR), } for _, err := range transient { if !transientAccept(err) { t.Fatalf("%v classified as fatal", err) } } if transientAccept(os.NewSyscallError("accept", syscall.EACCES)) { t.Fatal("EACCES classified as transient") } if transientAccept(os.ErrClosed) { t.Fatal("a closed listener classified as transient") } }