Skip to content

Commit 988eaee

Browse files
test: cover startup log version fallbacks
1 parent 6b47360 commit 988eaee

2 files changed

Lines changed: 33 additions & 7 deletions

File tree

frankenphp.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,16 @@ func startupLogAttrs(frankenPHPVersion string, phpVersion string, numThreads int
211211
return append(attrs, slog.String(startupLogAttrPHPVersion, phpVersion), slog.Int(startupLogAttrNumThreads, numThreads), slog.Int(startupLogAttrMaxThreads, maxThreads), slog.Int(startupLogAttrMaxRequests, maxRequests))
212212
}
213213

214+
func startupLogAttrsWithVersion(logger *slog.Logger, phpVersion string, numThreads int, maxThreads int, maxRequests int, versionFunc func() (string, error)) []slog.Attr {
215+
frankenPHPVersion, err := versionFunc()
216+
if err != nil {
217+
logger.LogAttrs(globalCtx, slog.LevelDebug, startupLogVersionUnavailableMessage, slog.Any(startupLogAttrError, err))
218+
frankenPHPVersion = ""
219+
}
220+
221+
return startupLogAttrs(frankenPHPVersion, phpVersion, numThreads, maxThreads, maxRequests)
222+
}
223+
214224
func Config() PHPConfig {
215225
cConfig := C.frankenphp_get_config()
216226

@@ -408,13 +418,7 @@ func Init(options ...Option) error {
408418
initAutoScaling(mainThread)
409419

410420
if globalLogger.Enabled(globalCtx, slog.LevelInfo) {
411-
frankenPHPBuildVersion := ""
412-
if version, err := frankenPHPVersion(); err != nil {
413-
globalLogger.LogAttrs(globalCtx, slog.LevelDebug, startupLogVersionUnavailableMessage, slog.Any(startupLogAttrError, err))
414-
} else {
415-
frankenPHPBuildVersion = version
416-
}
417-
globalLogger.LogAttrs(globalCtx, slog.LevelInfo, startupLogMessage, startupLogAttrs(frankenPHPBuildVersion, Version().Version, mainThread.numThreads, mainThread.maxThreads, maxRequestsPerThread)...)
421+
globalLogger.LogAttrs(globalCtx, slog.LevelInfo, startupLogMessage, startupLogAttrsWithVersion(globalLogger, Version().Version, mainThread.numThreads, mainThread.maxThreads, maxRequestsPerThread, frankenPHPVersion)...)
418422

419423
if EmbeddedAppPath != "" {
420424
globalLogger.LogAttrs(globalCtx, slog.LevelInfo, "embedded PHP app 📦", slog.String("path", EmbeddedAppPath))

startup_log_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package frankenphp
22

33
import (
44
"errors"
5+
"io"
6+
"log/slog"
57
"runtime/debug"
68
"testing"
79
)
@@ -16,6 +18,7 @@ const (
1618
startupLogTestMaxRequests = 0
1719
startupLogTestExecutableError = "executable error"
1820
startupLogTestBuildInfoError = "build info error"
21+
startupLogTestVersionError = "version error"
1922
)
2023

2124
func TestFrankenPHPVersionFromBuildInfoDependency(t *testing.T) {
@@ -46,6 +49,12 @@ func TestFrankenPHPVersionFromBuildInfoMainModule(t *testing.T) {
4649
}
4750
}
4851

52+
func TestFrankenPHPVersionFromBuildInfoNil(t *testing.T) {
53+
if got := frankenPHPVersionFromBuildInfo(nil); got != "" {
54+
t.Fatalf("expected empty FrankenPHP version, got %q", got)
55+
}
56+
}
57+
4958
func TestFrankenPHPVersionFromExecutable(t *testing.T) {
5059
version, err := frankenPHPVersionFromExecutable(
5160
func() (string, error) {
@@ -112,3 +121,16 @@ func TestStartupLogAttrsIncludeFrankenPHPVersion(t *testing.T) {
112121
t.Fatalf("expected startup log version %q, got %q", startupLogTestDependencyVersion, got)
113122
}
114123
}
124+
125+
func TestStartupLogAttrsWithVersionError(t *testing.T) {
126+
logger := slog.New(slog.NewTextHandler(io.Discard, &slog.HandlerOptions{Level: slog.LevelDebug}))
127+
attrs := startupLogAttrsWithVersion(logger, startupLogTestPHPVersion, startupLogTestNumThreads, startupLogTestMaxThreads, startupLogTestMaxRequests, func() (string, error) {
128+
return "", errors.New(startupLogTestVersionError)
129+
})
130+
if len(attrs) == 0 {
131+
t.Fatal("expected startup log attrs")
132+
}
133+
if attrs[0].Key == startupLogAttrVersion {
134+
t.Fatalf("expected startup log version to be omitted, got %q", attrs[0].Value.String())
135+
}
136+
}

0 commit comments

Comments
 (0)