Files
nfs/internal/server/accept_extra_test.go
T

33 lines
881 B
Go
Raw Normal View History

// Copyright (c) 2026 Petr Balvín <opensource@petrbalvin.org> (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")
}
}