Skip to content

Commit 407ef09

Browse files
fix: fail immediately on missing worker file (#1963)
1 parent bf4c9fe commit 407ef09

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

phpmainthread_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,19 +175,19 @@ func TestFinishBootingAWorkerScript(t *testing.T) {
175175

176176
func TestReturnAnErrorIf2WorkersHaveTheSameFileName(t *testing.T) {
177177
workers = []*worker{}
178-
w, err1 := newWorker(workerOpt{fileName: "filename.php", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
178+
w, err1 := newWorker(workerOpt{fileName: testDataPath + "/index.php"})
179179
workers = append(workers, w)
180-
_, err2 := newWorker(workerOpt{fileName: "filename.php", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
180+
_, err2 := newWorker(workerOpt{fileName: testDataPath + "/index.php"})
181181

182182
assert.NoError(t, err1)
183183
assert.Error(t, err2, "two workers cannot have the same filename")
184184
}
185185

186186
func TestReturnAnErrorIf2ModuleWorkersHaveTheSameName(t *testing.T) {
187187
workers = []*worker{}
188-
w, err1 := newWorker(workerOpt{fileName: "filename.php", name: "workername", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
188+
w, err1 := newWorker(workerOpt{fileName: testDataPath + "/index.php", name: "workername"})
189189
workers = append(workers, w)
190-
_, err2 := newWorker(workerOpt{fileName: "filename2.php", name: "workername", maxConsecutiveFailures: defaultMaxConsecutiveFailures})
190+
_, err2 := newWorker(workerOpt{fileName: testDataPath + "/hello.php", name: "workername"})
191191

192192
assert.NoError(t, err1)
193193
assert.Error(t, err2, "two workers cannot have the same name")

worker.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ package frankenphp
44
import "C"
55
import (
66
"fmt"
7+
"os"
78
"strings"
89
"sync"
910
"time"
@@ -98,6 +99,10 @@ func newWorker(o workerOpt) (*worker, error) {
9899
return nil, fmt.Errorf("worker filename is invalid %q: %w", o.fileName, err)
99100
}
100101

102+
if _, err := os.Stat(absFileName); err != nil {
103+
return nil, fmt.Errorf("worker file not found %q: %w", absFileName, err)
104+
}
105+
101106
if o.name == "" {
102107
o.name = absFileName
103108
}

0 commit comments

Comments
 (0)