返回 DeepSeek-Reasonix
workspace_unix_test.go
根目录 / desktop / workspace_unix_test.go
1 //go:build unix
2
3 package main
4
5 import (
6 "os"
7 "syscall"
8 "testing"
9 )
10
11 func TestReadFileRejectsNonRegularFile(t *testing.T) {
12 orig, _ := os.Getwd()
13 defer os.Chdir(orig)
14
15 dir := t.TempDir()
16 if err := os.Chdir(dir); err != nil {
17 t.Fatal(err)
18 }
19 if err := syscall.Mkfifo("pipe", 0o600); err != nil {
20 t.Fatal(err)
21 }
22
23 preview := (&App{}).ReadFile("pipe")
24 if preview.Err != "path is not a regular file" {
25 t.Fatalf("ReadFile fifo err = %q, want non-regular file error", preview.Err)
26 }
27 }
28
29 func TestListDirOmitsNonRegularFiles(t *testing.T) {
30 orig, _ := os.Getwd()
31 defer os.Chdir(orig)
32
33 dir := t.TempDir()
34 if err := os.Chdir(dir); err != nil {
35 t.Fatal(err)
36 }
37 if err := os.WriteFile("regular.txt", []byte("ok"), 0o644); err != nil {
38 t.Fatal(err)
39 }
40 if err := syscall.Mkfifo("pipe", 0o600); err != nil {
41 t.Fatal(err)
42 }
43
44 entries := (&App{}).ListDir("")
45 seenRegular := false
46 for _, entry := range entries {
47 if entry.Name == "pipe" {
48 t.Fatal("ListDir returned fifo as a file entry")
49 }
50 if entry.Name == "regular.txt" {
51 seenRegular = true
52 }
53 }
54 if !seenRegular {
55 t.Fatal("ListDir did not return regular file")
56 }
57 }
58
58 lines GO