Fix CI failures (bd 1zo sandbox tests) (#1244)
* Fix sandboxed daemon autostart tests and lint cleanup (bd-1zo) * Restore issues jsonl to main state (bd-1zo) * Remove .beads changes from PR (bd-1zo) * Fix Windows build for dolt SysProcAttr (bd-1zo) * Reset .beads/issues.jsonl to upstream main (bd-1zo) * Reset .beads/issues.jsonl to upstream main (bd-1zo) * Reset .beads/issues.jsonl to upstream main (bd-1zo) * Fix Windows password prompt fd type (bd-1zo) * Reset .beads/issues.jsonl to upstream main (bd-1zo) --------- Co-authored-by: Amp <amp@example.com> Co-authored-by: beads/crew/darcy <steve.yegge@gmail.com>
This commit is contained in:
@@ -3,12 +3,14 @@ package main
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
|
"syscall"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -37,6 +39,10 @@ func tempSockDir(t *testing.T) string {
|
|||||||
func startTestRPCServer(t *testing.T) (socketPath string, cleanup func()) {
|
func startTestRPCServer(t *testing.T) (socketPath string, cleanup func()) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
|
|
||||||
|
if isSandboxed() {
|
||||||
|
t.Skip("sandboxed environment blocks unix socket operations")
|
||||||
|
}
|
||||||
|
|
||||||
tmpDir := tempSockDir(t)
|
tmpDir := tempSockDir(t)
|
||||||
beadsDir := filepath.Join(tmpDir, ".beads")
|
beadsDir := filepath.Join(tmpDir, ".beads")
|
||||||
if err := os.MkdirAll(beadsDir, 0o750); err != nil {
|
if err := os.MkdirAll(beadsDir, 0o750); err != nil {
|
||||||
@@ -52,6 +58,10 @@ func startTestRPCServer(t *testing.T) (socketPath string, cleanup func()) {
|
|||||||
|
|
||||||
server, _, err := startRPCServer(ctx, socketPath, store, tmpDir, db, log)
|
server, _, err := startRPCServer(ctx, socketPath, store, tmpDir, db, log)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, syscall.EPERM) || errors.Is(err, syscall.EACCES) || os.IsPermission(err) {
|
||||||
|
cancel()
|
||||||
|
t.Skipf("unix sockets not permitted in this environment: %v", err)
|
||||||
|
}
|
||||||
cancel()
|
cancel()
|
||||||
t.Fatalf("startRPCServer: %v", err)
|
t.Fatalf("startRPCServer: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -313,11 +313,18 @@ func TestHasClaudeHooksProjectLevel(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}`
|
}`
|
||||||
|
|
||||||
|
setTempHome := func(t *testing.T, dir string) {
|
||||||
|
t.Helper()
|
||||||
|
t.Setenv("HOME", dir)
|
||||||
|
t.Setenv("USERPROFILE", dir)
|
||||||
|
}
|
||||||
|
|
||||||
// Test that hooks are detected in each project-level settings file
|
// Test that hooks are detected in each project-level settings file
|
||||||
for _, filename := range []string{"settings.json", "settings.local.json"} {
|
for _, filename := range []string{"settings.json", "settings.local.json"} {
|
||||||
t.Run(filename, func(t *testing.T) {
|
t.Run(filename, func(t *testing.T) {
|
||||||
tmpDir := t.TempDir()
|
tmpDir := t.TempDir()
|
||||||
t.Chdir(tmpDir)
|
t.Chdir(tmpDir)
|
||||||
|
setTempHome(t, t.TempDir())
|
||||||
|
|
||||||
if err := os.MkdirAll(".claude", 0o755); err != nil {
|
if err := os.MkdirAll(".claude", 0o755); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -336,6 +343,7 @@ func TestHasClaudeHooksProjectLevel(t *testing.T) {
|
|||||||
t.Run("no hooks section", func(t *testing.T) {
|
t.Run("no hooks section", func(t *testing.T) {
|
||||||
tmpDir := t.TempDir()
|
tmpDir := t.TempDir()
|
||||||
t.Chdir(tmpDir)
|
t.Chdir(tmpDir)
|
||||||
|
setTempHome(t, t.TempDir())
|
||||||
|
|
||||||
if err := os.MkdirAll(".claude", 0o755); err != nil {
|
if err := os.MkdirAll(".claude", 0o755); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@@ -353,6 +361,7 @@ func TestHasClaudeHooksProjectLevel(t *testing.T) {
|
|||||||
t.Run("hooks but not bd prime", func(t *testing.T) {
|
t.Run("hooks but not bd prime", func(t *testing.T) {
|
||||||
tmpDir := t.TempDir()
|
tmpDir := t.TempDir()
|
||||||
t.Chdir(tmpDir)
|
t.Chdir(tmpDir)
|
||||||
|
setTempHome(t, t.TempDir())
|
||||||
|
|
||||||
if err := os.MkdirAll(".claude", 0o755); err != nil {
|
if err := os.MkdirAll(".claude", 0o755); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|||||||
Reference in New Issue
Block a user