Added graceful shutdown

This commit is contained in:
2024-03-12 22:31:45 +01:00
parent d47604606f
commit 46177ccd42
8 changed files with 116 additions and 31 deletions

View File

@ -4,9 +4,11 @@ import (
"errors"
"fmt"
"io"
"net"
"net/http"
"net/http/httptest"
"strings"
"syscall"
"testing"
"git.akyoto.dev/go/assert"
@ -121,7 +123,7 @@ func TestRouter(t *testing.T) {
func TestPanic(t *testing.T) {
s := server.New()
s.Router().Add(http.MethodGet, "/panic", func(ctx server.Context) error {
s.Router.Add(http.MethodGet, "/panic", func(ctx server.Context) error {
panic("Something unbelievable happened")
})
@ -139,3 +141,25 @@ func TestPanic(t *testing.T) {
s.ServeHTTP(response, request)
})
}
func TestRun(t *testing.T) {
s := server.New()
go func() {
_, err := http.Get("http://127.0.0.1:8080/")
assert.Nil(t, err)
err = syscall.Kill(syscall.Getpid(), syscall.SIGTERM)
assert.Nil(t, err)
}()
s.Run(":8080")
}
func TestUnavailablePort(t *testing.T) {
listener, err := net.Listen("tcp", ":8080")
assert.Nil(t, err)
defer listener.Close()
s := server.New()
s.Run(":8080")
}