allow passing open /dev/fuse file descriptors (#124)
allows passing open /dev/fuse file descriptors so that the FUSE process can run fully unprivileged. uses the /dev/fd/N mountpoint format from libfuse3.master
parent
37d63df227
commit
21122235c7
@ -0,0 +1,37 @@ |
||||
package fuse |
||||
|
||||
import ( |
||||
"testing" |
||||
) |
||||
|
||||
func Test_parseFuseFd(t *testing.T) { |
||||
t.Run("valid", func(t *testing.T) { |
||||
fd, err := parseFuseFd("/dev/fd/42") |
||||
if fd != 42 { |
||||
t.Errorf("expected 42, got %d", fd) |
||||
} |
||||
if err != nil { |
||||
t.Errorf("expected no error, got %#v", err) |
||||
} |
||||
}) |
||||
|
||||
t.Run("negative", func(t *testing.T) { |
||||
fd, err := parseFuseFd("/dev/fd/-42") |
||||
if fd != -1 { |
||||
t.Errorf("expected an invalid fd, got %d", fd) |
||||
} |
||||
if err == nil { |
||||
t.Errorf("expected an error, nil") |
||||
} |
||||
}) |
||||
|
||||
t.Run("not an int", func(t *testing.T) { |
||||
fd, err := parseFuseFd("/dev/fd/3.14159") |
||||
if fd != -1 { |
||||
t.Errorf("expected an invalid fd, got %d", fd) |
||||
} |
||||
if err == nil { |
||||
t.Errorf("expected an error, nil") |
||||
} |
||||
}) |
||||
} |
Loading…
Reference in new issue