mirror of
https://github.com/gofiber/fiber.git
synced 2025-02-20 22:33:09 +00:00
107 lines
2.2 KiB
Go
107 lines
2.2 KiB
Go
package fiber
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"io/ioutil"
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
utils "github.com/gofiber/utils"
|
|
)
|
|
|
|
func Test_App_Prefork_Child_Process(t *testing.T) {
|
|
// Reset test var
|
|
testPreforkMaster = true
|
|
|
|
utils.AssertEqual(t, nil, os.Setenv(envPreforkChildKey, envPreforkChildVal))
|
|
defer os.Setenv(envPreforkChildKey, "")
|
|
|
|
app := New()
|
|
app.init()
|
|
|
|
err := app.prefork("invalid")
|
|
utils.AssertEqual(t, false, err == nil)
|
|
|
|
go func() {
|
|
time.Sleep(1000 * time.Millisecond)
|
|
utils.AssertEqual(t, nil, app.Shutdown())
|
|
}()
|
|
|
|
utils.AssertEqual(t, nil, app.prefork("[::]:"))
|
|
|
|
// Create tls certificate
|
|
cer, err := tls.LoadX509KeyPair("./.github/TEST_DATA/ssl.pem", "./.github/TEST_DATA/ssl.key")
|
|
if err != nil {
|
|
utils.AssertEqual(t, nil, err)
|
|
}
|
|
config := &tls.Config{Certificates: []tls.Certificate{cer}}
|
|
|
|
go func() {
|
|
time.Sleep(1000 * time.Millisecond)
|
|
utils.AssertEqual(t, nil, app.Shutdown())
|
|
}()
|
|
|
|
utils.AssertEqual(t, nil, app.prefork("127.0.0.1:", config))
|
|
}
|
|
|
|
func Test_App_Prefork_Master_Process(t *testing.T) {
|
|
// Reset test var
|
|
testPreforkMaster = true
|
|
|
|
app := New()
|
|
app.init()
|
|
|
|
go func() {
|
|
time.Sleep(1000 * time.Millisecond)
|
|
utils.AssertEqual(t, nil, app.Shutdown())
|
|
}()
|
|
|
|
utils.AssertEqual(t, nil, app.prefork(":3000"))
|
|
|
|
dummyChildCmd = "invalid"
|
|
|
|
err := app.prefork("127.0.0.1:")
|
|
utils.AssertEqual(t, false, err == nil)
|
|
}
|
|
|
|
func Test_App_Prefork_TCP6_Addr(t *testing.T) {
|
|
// Reset test var
|
|
testPreforkMaster = true
|
|
|
|
app := New()
|
|
app.Settings.Prefork = true
|
|
app.Settings.DisableStartupMessage = true
|
|
|
|
app.init()
|
|
|
|
go func() {
|
|
time.Sleep(1000 * time.Millisecond)
|
|
utils.AssertEqual(t, nil, app.Shutdown())
|
|
}()
|
|
|
|
err := app.Listen("[::1]:3200")
|
|
utils.AssertEqual(t, true, err != nil)
|
|
}
|
|
|
|
func Test_App_Prefork_Child_Process_Never_Show_Startup_Message(t *testing.T) {
|
|
utils.AssertEqual(t, nil, os.Setenv(envPreforkChildKey, envPreforkChildVal))
|
|
defer os.Setenv(envPreforkChildKey, "")
|
|
|
|
rescueStdout := os.Stdout
|
|
defer func() { os.Stdout = rescueStdout }()
|
|
|
|
r, w, err := os.Pipe()
|
|
utils.AssertEqual(t, nil, err)
|
|
|
|
os.Stdout = w
|
|
|
|
New().startupMessage(":3000", false, "")
|
|
|
|
utils.AssertEqual(t, nil, w.Close())
|
|
|
|
out, err := ioutil.ReadAll(r)
|
|
utils.AssertEqual(t, nil, err)
|
|
utils.AssertEqual(t, 0, len(out))
|
|
}
|