diff --git a/pkg/tools/filesystem.go b/pkg/tools/filesystem.go index da5ca20d9..f36ad5476 100644 --- a/pkg/tools/filesystem.go +++ b/pkg/tools/filesystem.go @@ -273,7 +273,11 @@ func (h *hostFs) ReadFile(path string) ([]byte, error) { } func (h *hostFs) ReadDir(path string) ([]os.DirEntry, error) { - return os.ReadDir(path) + entries, err := os.ReadDir(path) + if err != nil { + return nil, fmt.Errorf("failed to read directory: %w", err) + } + return entries, nil } func (h *hostFs) WriteFile(path string, data []byte) error { diff --git a/pkg/tools/shell_test.go b/pkg/tools/shell_test.go index e76a365af..6fe9b6b9b 100644 --- a/pkg/tools/shell_test.go +++ b/pkg/tools/shell_test.go @@ -844,7 +844,7 @@ func TestExecTool_Bg_RingBufferOverflow(t *testing.T) { if runtime.GOOS == "windows" { cmd = "1..2000 | ForEach-Object { Write-Output ('x' * 50) }; Start-Sleep -Seconds 30" } else { - cmd = "for i in $(seq 1 2000); do echo $(head -c 50 /dev/zero | tr '\\0' 'x'); done; sleep 30" + cmd = "yes 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' | head -n 2000; sleep 30" } result := tool.Execute(context.Background(), map[string]any{