TestUnixSocketAdaptor() — fiber Function Reference
Architecture documentation for the TestUnixSocketAdaptor() function in adaptor_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 946e924f_7578_a826_14a9_cd564e9a2b44["TestUnixSocketAdaptor()"] 8ec96b38_44b4_af66_6f6f_dd60f87b680c["adaptor_test.go"] 946e924f_7578_a826_14a9_cd564e9a2b44 -->|defined in| 8ec96b38_44b4_af66_6f6f_dd60f87b680c style 946e924f_7578_a826_14a9_cd564e9a2b44 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
middleware/adaptor/adaptor_test.go lines 1458–1540
func TestUnixSocketAdaptor(t *testing.T) {
dir := t.TempDir()
socketPath := filepath.Join(dir, "test.sock")
defer func() {
if err := os.Remove(socketPath); err != nil {
t.Logf("cleanup failed: %v", err)
}
}()
app := fiber.New()
app.Get("/hello", func(c fiber.Ctx) error {
return c.SendString("ok")
})
handler := FiberApp(app)
listener, err := net.Listen("unix", socketPath)
if err != nil {
// Skip on platforms where the "unix" network is unsupported
if strings.Contains(err.Error(), "unknown network") ||
strings.Contains(err.Error(), "address family not supported") {
t.Skipf("Unix domain sockets not supported on this platform: %v", err)
}
t.Fatal(err)
}
defer func() {
if closeErr := listener.Close(); closeErr != nil {
t.Logf("listener close failed: %v", closeErr)
}
}()
// start server with timeouts
srv := &http.Server{
Handler: handler,
ReadTimeout: 5 * time.Second,
WriteTimeout: 10 * time.Second,
}
done := make(chan struct{})
go func() {
if serveErr := srv.Serve(listener); serveErr != nil && serveErr != http.ErrServerClosed {
t.Errorf("http server failed: %v", serveErr)
}
close(done)
}()
conn, err := net.Dial("unix", socketPath)
require.NoError(t, err)
defer func() {
if closeErr := conn.Close(); closeErr != nil {
t.Logf("conn close failed: %v", closeErr)
}
}()
// set deadline for both write + read (2s)
require.NoError(t, conn.SetDeadline(time.Now().Add(2*time.Second)))
// write request
_, err = conn.Write([]byte("GET /hello HTTP/1.1\r\nHost: localhost\r\n\r\n"))
require.NoError(t, err)
// read response
buf := make([]byte, 1024)
n, err := conn.Read(buf)
require.NoError(t, err)
// clear deadline to avoid affecting further calls
require.NoError(t, conn.SetDeadline(time.Time{}))
raw := string(buf[:n])
t.Logf("Raw response:\n%s", raw)
require.Contains(t, raw, "HTTP/1.1 200 OK")
require.Contains(t, raw, "ok")
// now shutdown the server explicitly before waiting for done
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
require.NoError(t, srv.Shutdown(ctx))
select {
case <-done:
case <-time.After(5 * time.Second):
t.Fatal("server shutdown timed out")
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does TestUnixSocketAdaptor() do?
TestUnixSocketAdaptor() is a function in the fiber codebase, defined in middleware/adaptor/adaptor_test.go.
Where is TestUnixSocketAdaptor() defined?
TestUnixSocketAdaptor() is defined in middleware/adaptor/adaptor_test.go at line 1458.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free