mirror of
https://github.com/dunglas/frankenphp.git
synced 2025-12-24 13:38:11 +08:00
fix: fail immediately on missing worker file (#1963)
This commit is contained in:
committed by
GitHub
parent
bf4c9fe986
commit
407ef09ac3
@@ -175,9 +175,9 @@ func TestFinishBootingAWorkerScript(t *testing.T) {
|
||||
|
||||
func TestReturnAnErrorIf2WorkersHaveTheSameFileName(t *testing.T) {
|
||||
workers = []*worker{}
|
||||
w, err1 := newWorker(workerOpt{fileName: "filename.php", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
|
||||
w, err1 := newWorker(workerOpt{fileName: testDataPath + "/index.php"})
|
||||
workers = append(workers, w)
|
||||
_, err2 := newWorker(workerOpt{fileName: "filename.php", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
|
||||
_, err2 := newWorker(workerOpt{fileName: testDataPath + "/index.php"})
|
||||
|
||||
assert.NoError(t, err1)
|
||||
assert.Error(t, err2, "two workers cannot have the same filename")
|
||||
@@ -185,9 +185,9 @@ func TestReturnAnErrorIf2WorkersHaveTheSameFileName(t *testing.T) {
|
||||
|
||||
func TestReturnAnErrorIf2ModuleWorkersHaveTheSameName(t *testing.T) {
|
||||
workers = []*worker{}
|
||||
w, err1 := newWorker(workerOpt{fileName: "filename.php", name: "workername", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
|
||||
w, err1 := newWorker(workerOpt{fileName: testDataPath + "/index.php", name: "workername"})
|
||||
workers = append(workers, w)
|
||||
_, err2 := newWorker(workerOpt{fileName: "filename2.php", name: "workername", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
|
||||
_, err2 := newWorker(workerOpt{fileName: testDataPath + "/hello.php", name: "workername"})
|
||||
|
||||
assert.NoError(t, err1)
|
||||
assert.Error(t, err2, "two workers cannot have the same name")
|
||||
|
||||
@@ -4,6 +4,7 @@ package frankenphp
|
||||
import "C"
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@@ -98,6 +99,10 @@ func newWorker(o workerOpt) (*worker, error) {
|
||||
return nil, fmt.Errorf("worker filename is invalid %q: %w", o.fileName, err)
|
||||
}
|
||||
|
||||
if _, err := os.Stat(absFileName); err != nil {
|
||||
return nil, fmt.Errorf("worker file not found %q: %w", absFileName, err)
|
||||
}
|
||||
|
||||
if o.name == "" {
|
||||
o.name = absFileName
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user