Files
nfs/internal/server/accept_extra_test.go
petrbalvin a9b8039ef7
Test / test (push) Successful in 2m4s
Release / gates (push) Successful in 2m5s
Release / build (amd64, freebsd) (push) Successful in 1m27s
Release / build (amd64, linux) (push) Successful in 1m22s
Release / build (amd64, netbsd) (push) Successful in 1m19s
Release / build (amd64, openbsd) (push) Successful in 1m20s
Release / build (arm64, darwin) (push) Successful in 1m21s
Release / build (arm64, freebsd) (push) Successful in 1m26s
Release / build (arm64, linux) (push) Successful in 1m25s
Release / build (arm64, netbsd) (push) Successful in 1m31s
Release / build (arm64, openbsd) (push) Successful in 1m27s
Release / build (loong64, linux) (push) Successful in 1m37s
Release / build (riscv64, linux) (push) Successful in 1m21s
Release / release (push) Successful in 40s
feat: full NFSv4.2 server and client in pure Go
Assisted-by: GLM 5.3 Flash
2026-09-21 18:51:17 +02:00

33 lines
881 B
Go

// 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")
}
}