MCPcopy
hub / github.com/gofiber/fiber / TestUnixSocketAdaptor

Function TestUnixSocketAdaptor

middleware/adaptor/adaptor_test.go:1623–1705  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1621}
1622
1623func TestUnixSocketAdaptor(t *testing.T) {
1624 dir := t.TempDir()
1625 socketPath := filepath.Join(dir, "test.sock")
1626 defer func() {
1627 if err := os.Remove(socketPath); err != nil {
1628 t.Logf("cleanup failed: %v", err)
1629 }
1630 }()
1631
1632 app := fiber.New()
1633 app.Get("/hello", func(c fiber.Ctx) error {
1634 return c.SendString("ok")
1635 })
1636 handler := FiberApp(app)
1637
1638 listener, err := net.Listen("unix", socketPath)
1639 if err != nil {
1640 // Skip on platforms where the "unix" network is unsupported
1641 if strings.Contains(err.Error(), "unknown network") ||
1642 strings.Contains(err.Error(), "address family not supported") {
1643 t.Skipf("Unix domain sockets not supported on this platform: %v", err)
1644 }
1645 t.Fatal(err)
1646 }
1647 defer func() {
1648 if closeErr := listener.Close(); closeErr != nil {
1649 t.Logf("listener close failed: %v", closeErr)
1650 }
1651 }()
1652
1653 // start server with timeouts
1654 srv := &http.Server{
1655 Handler: handler,
1656 ReadTimeout: 5 * time.Second,
1657 WriteTimeout: 10 * time.Second,
1658 }
1659 done := make(chan struct{})
1660 go func() {
1661 if serveErr := srv.Serve(listener); serveErr != nil && serveErr != http.ErrServerClosed {
1662 t.Errorf("http server failed: %v", serveErr)
1663 }
1664 close(done)
1665 }()
1666
1667 conn, err := net.Dial("unix", socketPath)
1668 require.NoError(t, err)
1669 defer func() {
1670 if closeErr := conn.Close(); closeErr != nil {
1671 t.Logf("conn close failed: %v", closeErr)
1672 }
1673 }()
1674
1675 // set deadline for both write + read (2s)
1676 require.NoError(t, conn.SetDeadline(time.Now().Add(2*time.Second)))
1677
1678 // write request
1679 _, err = conn.Write([]byte("GET /hello HTTP/1.1\r\nHost: localhost\r\n\r\n"))
1680 require.NoError(t, err)

Callers

nothing calls this directly

Calls 15

FiberAppFunction · 0.85
ListenMethod · 0.80
ContainsMethod · 0.80
SetDeadlineMethod · 0.80
ShutdownMethod · 0.80
NewMethod · 0.65
GetMethod · 0.65
SendStringMethod · 0.65
ErrorMethod · 0.65
FatalMethod · 0.65
CloseMethod · 0.65
ErrorfMethod · 0.65

Tested by

no test coverage detected